diff options
author | Jordan Justen <jordan.l.justen@intel.com> | 2015-05-25 12:23:05 -0700 |
---|---|---|
committer | Jordan Justen <jordan.l.justen@intel.com> | 2015-05-25 12:23:05 -0700 |
commit | cb3a16fb0afc9bdd05cf4ac3d3dd0ebb42769231 (patch) | |
tree | a43dd572ee3e642d82bd2d6db4522261553cf664 | |
parent | 5cd409a76c1512b0f8f64b7fd606de022333774c (diff) |
wipcs+ils
-rw-r--r-- | src/mesa/drivers/common/meta.c | 6 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_cs.cpp | 7 |
2 files changed, 8 insertions, 5 deletions
diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c index d2ab7b8ded..7dd08bf62f 100644 --- a/src/mesa/drivers/common/meta.c +++ b/src/mesa/drivers/common/meta.c @@ -599,7 +599,7 @@ _mesa_meta_begin(struct gl_context *ctx, GLbitfield state) /* Save the shader state from ctx->Shader (instead of ctx->_Shader) so * that we don't have to worry about the current pipeline state. */ - for (i = 0; i <= MESA_SHADER_FRAGMENT; i++) { + for (i = 0; i < MESA_SHADER_STAGES; i++) { _mesa_reference_shader_program(ctx, &save->Shader[i], ctx->Shader.CurrentProgram[i]); } @@ -947,7 +947,9 @@ _mesa_meta_end(struct gl_context *ctx) GL_VERTEX_SHADER, GL_GEOMETRY_SHADER, GL_FRAGMENT_SHADER, + GL_COMPUTE_SHADER, }; + STATIC_ASSERT(MESA_SHADER_STAGES == ARRAY_SIZE(targets)); bool any_shader; @@ -973,7 +975,7 @@ _mesa_meta_end(struct gl_context *ctx) } any_shader = false; - for (i = 0; i <= MESA_SHADER_FRAGMENT; i++) { + for (i = 0; i < MESA_SHADER_STAGES; i++) { /* It is safe to call _mesa_use_shader_program even if the extension * necessary for that program state is not supported. In that case, * the saved program object must be NULL and the currently bound diff --git a/src/mesa/drivers/dri/i965/brw_cs.cpp b/src/mesa/drivers/dri/i965/brw_cs.cpp index 0b2eedc7ae..19e635bd92 100644 --- a/src/mesa/drivers/dri/i965/brw_cs.cpp +++ b/src/mesa/drivers/dri/i965/brw_cs.cpp @@ -173,7 +173,8 @@ brw_codegen_cs_prog(struct brw_context *brw, * prog_data associated with the compiled program, and which will be freed * by the state cache. */ - int param_count = cs->num_uniform_components; + int param_count = (cs->num_uniform_components + + cs->NumImages * BRW_IMAGE_PARAM_SIZE); /* The backend also sometimes adds params for texture size. */ param_count += 2 * ctx->Const.Program[MESA_SHADER_COMPUTE].MaxTextureImageUnits; @@ -566,7 +567,7 @@ const struct brw_tracked_state gen7_cs_push_constants = { }; static void -brw_upload_wm_image_surfaces(struct brw_context *brw) +brw_upload_cs_image_surfaces(struct brw_context *brw) { struct gl_context *ctx = &brw->ctx; /* BRW_NEW_COMPUTE_PROGRAM */ @@ -585,5 +586,5 @@ const struct brw_tracked_state brw_cs_image_surfaces = { .mesa = 0, .brw = BRW_NEW_BATCH | BRW_NEW_COMPUTE_PROGRAM | BRW_NEW_IMAGE_UNITS, }, - .emit = brw_upload_wm_image_surfaces, + .emit = brw_upload_cs_image_surfaces, }; |