Mesa (master): docs: Mention GL_ARB_ES3_1_compatibility in release notes.
Module: Mesa Branch: master Commit: 48593eaf2db4100b66d924a7f0fc6222a3a5df8d URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=48593eaf2db4100b66d924a7f0fc6222a3a5df8d Author: Kenneth GraunkeDate: Thu Jun 16 17:10:08 2016 -0700 docs: Mention GL_ARB_ES3_1_compatibility in release notes. Ilia reminded me that I forgot this. --- docs/relnotes/12.1.0.html | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/relnotes/12.1.0.html b/docs/relnotes/12.1.0.html index 3f7b196..ed8e5bc 100644 --- a/docs/relnotes/12.1.0.html +++ b/docs/relnotes/12.1.0.html @@ -45,6 +45,7 @@ Note: some of the new features are only available with certain drivers. GL_ARB_shader_group_vote on nvc0 +GL_ARB_ES3_1_compatibility on i965 Bug fixes ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): i965: Fix comment about CS scratch space encodings on Broadwell+.
Module: Mesa Branch: master Commit: a08a16541ba582a1a06e282c2a441b11a4fea17e URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a08a16541ba582a1a06e282c2a441b11a4fea17e Author: Kenneth GraunkeDate: Tue Jun 14 01:35:20 2016 -0700 i965: Fix comment about CS scratch space encodings on Broadwell+. I typo'd this. Signed-off-by: Kenneth Graunke --- src/mesa/drivers/dri/i965/gen7_cs_state.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mesa/drivers/dri/i965/gen7_cs_state.c b/src/mesa/drivers/dri/i965/gen7_cs_state.c index 5427fa5..5fb8829 100644 --- a/src/mesa/drivers/dri/i965/gen7_cs_state.c +++ b/src/mesa/drivers/dri/i965/gen7_cs_state.c @@ -66,7 +66,7 @@ brw_upload_cs_state(struct brw_context *brw) if (prog_data->total_scratch) { if (brw->gen >= 8) { /* Broadwell's Per Thread Scratch Space is in the range [0, 11] - * where 0 = 1k, 1 = 4k, 2 = 8k, ..., 11 = 2M. + * where 0 = 1k, 1 = 2k, 2 = 4k, ..., 11 = 2M. */ OUT_RELOC64(stage_state->scratch_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): docs: Update ARB_ES3_1_compatibility status for i965.
Module: Mesa Branch: master Commit: 93d8f80a9a6fcdd348d84d06d40220ea6d3e8473 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=93d8f80a9a6fcdd348d84d06d40220ea6d3e8473 Author: Kenneth GraunkeDate: Thu Jun 16 14:39:44 2016 -0700 docs: Update ARB_ES3_1_compatibility status for i965. --- docs/GL3.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/GL3.txt b/docs/GL3.txt index 0204695..ce34869 100644 --- a/docs/GL3.txt +++ b/docs/GL3.txt @@ -208,7 +208,7 @@ GL 4.4, GLSL 4.40: GL 4.5, GLSL 4.50: - GL_ARB_ES3_1_compatibilityDONE (nvc0, radeonsi) + GL_ARB_ES3_1_compatibilityDONE (i965/gen8+, nvc0, radeonsi) GL_ARB_clip_control DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr) GL_ARB_conditional_render_invertedDONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe, swr) GL_ARB_cull_distance DONE (i965, nv50, nvc0, llvmpipe, softpipe, swr) ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): i965: Drop perf_debug about rasterizer discard in SOL vs. clipper.
Module: Mesa Branch: master Commit: 1f9445ff57b03413c433731bc00572029da10aa9 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1f9445ff57b03413c433731bc00572029da10aa9 Author: Kenneth GraunkeDate: Tue May 10 17:54:45 2016 -0700 i965: Drop perf_debug about rasterizer discard in SOL vs. clipper. I recently experimented with performing rasterizer discard in the SOL unit instead of the clipper, and as far as I can tell, it's basically the same performance. The clipper comes directly after SOL anyway, and setting the clipper to REJECT_ALL should be pretty darn cheap. Keep the perf_debug on Sandybridge, where the GS actually does work. Signed-off-by: Kenneth Graunke --- src/mesa/drivers/dri/i965/gen6_clip_state.c | 8 +--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/mesa/drivers/dri/i965/gen6_clip_state.c b/src/mesa/drivers/dri/i965/gen6_clip_state.c index 26de633..b079ffd 100644 --- a/src/mesa/drivers/dri/i965/gen6_clip_state.c +++ b/src/mesa/drivers/dri/i965/gen6_clip_state.c @@ -165,9 +165,11 @@ upload_clip_state(struct brw_context *brw) /* BRW_NEW_RASTERIZER_DISCARD */ if (ctx->RasterDiscard) { dw2 |= GEN6_CLIP_MODE_REJECT_ALL; - perf_debug("Rasterizer discard is currently implemented via the clipper; " - "%s be faster.\n", brw->gen >= 7 ? "using the SOL unit may" : - "having the GS not write primitives would likely"); + if (brw->gen == 6) { + perf_debug("Rasterizer discard is currently implemented via the " +"clipper; having the GS not write primitives would " +"likely be faster.\n"); + } } uint32_t enable; ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): i965: Enable GL_ARB_ES3_1_compatibility on Gen8+ if CS are available.
Module: Mesa Branch: master Commit: 32b1c0b694bf660d48054a6e859deaa8f9556efe URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=32b1c0b694bf660d48054a6e859deaa8f9556efe Author: Kenneth GraunkeDate: Thu May 12 18:08:49 2016 -0700 i965: Enable GL_ARB_ES3_1_compatibility on Gen8+ if CS are available. There are almost no tests in any test suite, but what little I've found seems to work. Ilia believes everything is in place. v2: Predicate the enable on ES 3.1 being available (Gen8+) and also ARB_compute_shader being available (requested by Ilia). Signed-off-by: Kenneth Graunke Reviewed-by: Ian Romanick Reviewed-by: Dave Airlie --- src/mesa/drivers/dri/i965/intel_extensions.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/mesa/drivers/dri/i965/intel_extensions.c b/src/mesa/drivers/dri/i965/intel_extensions.c index 5be4787..5e27d78 100644 --- a/src/mesa/drivers/dri/i965/intel_extensions.c +++ b/src/mesa/drivers/dri/i965/intel_extensions.c @@ -354,8 +354,10 @@ intelInitExtensions(struct gl_context *ctx) ctx->Extensions.ARB_transform_feedback_instanced = true; if ((brw->gen >= 8 || brw->intelScreen->cmd_parser_version >= 5) && - ctx->Const.MaxComputeWorkGroupSize[0] >= 1024) + ctx->Const.MaxComputeWorkGroupSize[0] >= 1024) { ctx->Extensions.ARB_compute_shader = true; +ctx->Extensions.ARB_ES3_1_compatibility = brw->gen >= 8; + } if (brw->intelScreen->cmd_parser_version >= 2) brw->predicate.supported = true; ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): glsl: Always strip arrayness in precision_qualifier_allowed
Module: Mesa Branch: master Commit: 9c872820413f6183db0eb47828a7afcf703f9930 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9c872820413f6183db0eb47828a7afcf703f9930 Author: Ian RomanickDate: Mon Jun 13 15:22:34 2016 -0700 glsl: Always strip arrayness in precision_qualifier_allowed Previously some callers of precision_qualifier_allowed would strip the arrayness from the type and some would not. As a result, some places would not notice that float[6], for example, needed a precision qualifier. Fixes the new piglit test no-default-float-array-precision.frag. Signed-off-by: Ian Romanick Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96358 Cc: "12.0" Cc: Gregory Hainaut Cc: Ilia Mirkin Reviewed-by: Timothy Arceri --- src/compiler/glsl/ast_to_hir.cpp | 17 ++--- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/src/compiler/glsl/ast_to_hir.cpp b/src/compiler/glsl/ast_to_hir.cpp index ea32924..7da734c 100644 --- a/src/compiler/glsl/ast_to_hir.cpp +++ b/src/compiler/glsl/ast_to_hir.cpp @@ -2278,10 +2278,10 @@ precision_qualifier_allowed(const glsl_type *type) * From this, we infer that GLSL 1.30 (and later) should allow precision * qualifiers on sampler types just like float and integer types. */ - return (type->is_float() - || type->is_integer() - || type->contains_opaque()) - && !type->without_array()->is_record(); + const glsl_type *const t = type->without_array(); + + return (t->is_float() || t->is_integer() || t->contains_opaque()) && + !t->is_record(); } const glsl_type * @@ -4994,13 +4994,8 @@ ast_declarator_list::hir(exec_list *instructions, state->check_precision_qualifiers_allowed(); } - - /* If a precision qualifier is allowed on a type, it is allowed on - * an array of that type. - */ - if (!(this->type->qualifier.precision == ast_precision_none - || precision_qualifier_allowed(var->type->without_array( { - + if (this->type->qualifier.precision != ast_precision_none && + !precision_qualifier_allowed(var->type)) { _mesa_glsl_error(, state, "precision qualifiers apply only to floating point" ", integer and opaque types"); ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): mesa: If validation fails in a debug context just emit a debug message
Module: Mesa Branch: master Commit: 6bec55a780b0e95445c6d77c6e35cc0c74290ac0 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6bec55a780b0e95445c6d77c6e35cc0c74290ac0 Author: Ian RomanickDate: Mon Jun 13 09:59:10 2016 -0700 mesa: If validation fails in a debug context just emit a debug message There are quite a few pipelines that desktop applications (including a bunch of piglit test) can expect to have run but don't meet the GLES requirements. Instead of failing validation, just emit a debug message. Signed-off-by: Ian Romanick Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96358 Cc: "12.0" Cc: Gregory Hainaut Reviewed-by: Ilia Mirkin Reviewed-by: Timothy Arceri --- src/mesa/main/pipelineobj.c | 17 +++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/mesa/main/pipelineobj.c b/src/mesa/main/pipelineobj.c index 5a46cfe..9ecbcc9 100644 --- a/src/mesa/main/pipelineobj.c +++ b/src/mesa/main/pipelineobj.c @@ -929,8 +929,21 @@ _mesa_validate_program_pipeline(struct gl_context* ctx, * application has created a debug context. */ if ((_mesa_is_gles(ctx) || (ctx->Const.ContextFlags & GL_CONTEXT_FLAG_DEBUG_BIT)) && - !_mesa_validate_pipeline_io(pipe)) - return GL_FALSE; + !_mesa_validate_pipeline_io(pipe)) { + if (_mesa_is_gles(ctx)) + return GL_FALSE; + + static GLuint msg_id = 0; + + _mesa_gl_debug(ctx, _id, + MESA_DEBUG_SOURCE_API, + MESA_DEBUG_TYPE_PORTABILITY, + MESA_DEBUG_SEVERITY_MEDIUM, + "glValidateProgramPipeline: pipeline %u does not meet " + "strict OpenGL ES 3.1 requirements and may not be " + "portable across desktop hardware\n", + pipe->Name); + } pipe->Validated = GL_TRUE; return GL_TRUE; ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): mesa/main: Update _mesa_new_shader.
Module: Mesa Branch: master Commit: d04f652b757d1c9e53ee338e92d18c4c516c9507 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d04f652b757d1c9e53ee338e92d18c4c516c9507 Author: Jose FonsecaDate: Thu Jun 16 15:22:37 2016 +0100 mesa/main: Update _mesa_new_shader. Left over from 31dee99e052902bc08ddbb1009748dc982ac3211. It should fix Clang Windows build. Trivial. --- src/mesa/main/shaderobj.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mesa/main/shaderobj.h b/src/mesa/main/shaderobj.h index 53836f1..3abd597 100644 --- a/src/mesa/main/shaderobj.h +++ b/src/mesa/main/shaderobj.h @@ -80,7 +80,7 @@ extern void _mesa_init_shader(struct gl_context *ctx, struct gl_shader *shader); extern struct gl_shader * -_mesa_new_shader(struct gl_context *ctx, GLuint name, GLenum type); +_mesa_new_shader(struct gl_context *ctx, GLuint name, gl_shader_stage type); extern void _mesa_delete_shader(struct gl_context *ctx, struct gl_shader *sh); ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): st/vdpau: we support lumakeying now
Module: Mesa Branch: master Commit: 6d877d7121fdf16c91897b99ffd40d549d06d3a9 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6d877d7121fdf16c91897b99ffd40d549d06d3a9 Author: Christian KönigDate: Thu Jun 9 14:44:39 2016 +0200 st/vdpau: we support lumakeying now Signed-off-by: Christian König --- src/gallium/state_trackers/vdpau/query.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gallium/state_trackers/vdpau/query.c b/src/gallium/state_trackers/vdpau/query.c index 6e9cdd9..c3decc0 100644 --- a/src/gallium/state_trackers/vdpau/query.c +++ b/src/gallium/state_trackers/vdpau/query.c @@ -470,6 +470,7 @@ vlVdpVideoMixerQueryFeatureSupport(VdpDevice device, VdpVideoMixerFeature featur case VDP_VIDEO_MIXER_FEATURE_SHARPNESS: case VDP_VIDEO_MIXER_FEATURE_NOISE_REDUCTION: case VDP_VIDEO_MIXER_FEATURE_DEINTERLACE_TEMPORAL: + case VDP_VIDEO_MIXER_FEATURE_LUMA_KEY: *is_supported = VDP_TRUE; break; default: ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): vl: support luma keying for interlaced surfaces as well
Module: Mesa Branch: master Commit: bf89e672cff432a5e2ace72c0fb73eb8f120ff7a URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=bf89e672cff432a5e2ace72c0fb73eb8f120ff7a Author: Christian KönigDate: Thu Jun 9 14:43:10 2016 +0200 vl: support luma keying for interlaced surfaces as well We had the CSC code twice in there, factor it out into a separate function. Signed-off-by: Christian König --- src/gallium/auxiliary/vl/vl_compositor.c | 76 +--- 1 file changed, 41 insertions(+), 35 deletions(-) diff --git a/src/gallium/auxiliary/vl/vl_compositor.c b/src/gallium/auxiliary/vl/vl_compositor.c index 1a383f2..77fc92e 100644 --- a/src/gallium/auxiliary/vl/vl_compositor.c +++ b/src/gallium/auxiliary/vl/vl_compositor.c @@ -125,17 +125,51 @@ create_vert_shader(struct vl_compositor *c) return ureg_create_shader_and_destroy(shader, c->pipe); } +static void +create_frag_shader_csc(struct ureg_program *shader, struct ureg_dst texel, + struct ureg_dst fragment) +{ + struct ureg_src csc[3]; + struct ureg_src lumakey; + struct ureg_dst temp[2]; + unsigned i; + + for (i = 0; i < 3; ++i) + csc[i] = ureg_DECL_constant(shader, i); + + lumakey = ureg_DECL_constant(shader, 3); + + for (i = 0; i < 2; ++i) + temp[i] = ureg_DECL_temporary(shader); + + ureg_MOV(shader, ureg_writemask(texel, TGSI_WRITEMASK_W), + ureg_imm1f(shader, 1.0f)); + + for (i = 0; i < 3; ++i) + ureg_DP4(shader, ureg_writemask(fragment, TGSI_WRITEMASK_X << i), csc[i], + ureg_src(texel)); + + ureg_MOV(shader, ureg_writemask(temp[0], TGSI_WRITEMASK_W), +ureg_scalar(ureg_src(texel), TGSI_SWIZZLE_Z)); + ureg_SLE(shader, ureg_writemask(temp[1],TGSI_WRITEMASK_W), +ureg_src(temp[0]), ureg_scalar(lumakey, TGSI_SWIZZLE_X)); + ureg_SGT(shader, ureg_writemask(temp[0],TGSI_WRITEMASK_W), +ureg_src(temp[0]), ureg_scalar(lumakey, TGSI_SWIZZLE_Y)); + ureg_MAX(shader, ureg_writemask(fragment, TGSI_WRITEMASK_W), +ureg_src(temp[0]), ureg_src(temp[1])); + + for (i = 0; i < 2; ++i) + ureg_release_temporary(shader, temp[i]); +} + static void * create_frag_shader_video_buffer(struct vl_compositor *c) { struct ureg_program *shader; struct ureg_src tc; - struct ureg_src csc[3]; struct ureg_src sampler[3]; - struct ureg_src lumakey; struct ureg_dst texel; struct ureg_dst fragment; - struct ureg_dst temp[2]; unsigned i; shader = ureg_create(PIPE_SHADER_FRAGMENT); @@ -143,15 +177,9 @@ create_frag_shader_video_buffer(struct vl_compositor *c) return false; tc = ureg_DECL_fs_input(shader, TGSI_SEMANTIC_GENERIC, VS_O_VTEX, TGSI_INTERPOLATE_LINEAR); - for (i = 0; i < 3; ++i) { - csc[i] = ureg_DECL_constant(shader, i); + for (i = 0; i < 3; ++i) sampler[i] = ureg_DECL_sampler(shader, i); - } - - for (i = 0; i < 2; ++i) - temp[i] = ureg_DECL_temporary(shader); - lumakey = ureg_DECL_constant(shader, 3); texel = ureg_DECL_temporary(shader); fragment = ureg_DECL_output(shader, TGSI_SEMANTIC_COLOR, 0); @@ -162,22 +190,7 @@ create_frag_shader_video_buffer(struct vl_compositor *c) for (i = 0; i < 3; ++i) ureg_TEX(shader, ureg_writemask(texel, TGSI_WRITEMASK_X << i), TGSI_TEXTURE_2D_ARRAY, tc, sampler[i]); - ureg_MOV(shader, ureg_writemask(texel, TGSI_WRITEMASK_W), ureg_imm1f(shader, 1.0f)); - - for (i = 0; i < 3; ++i) - ureg_DP4(shader, ureg_writemask(fragment, TGSI_WRITEMASK_X << i), csc[i], ureg_src(texel)); - - ureg_MOV(shader, ureg_writemask(temp[0], TGSI_WRITEMASK_W), -ureg_scalar(ureg_src(texel), TGSI_SWIZZLE_Z)); - ureg_SLE(shader, ureg_writemask(temp[1],TGSI_WRITEMASK_W), -ureg_src(temp[0]), ureg_scalar(lumakey, TGSI_SWIZZLE_X)); - ureg_SGT(shader, ureg_writemask(temp[0],TGSI_WRITEMASK_W), -ureg_src(temp[0]), ureg_scalar(lumakey, TGSI_SWIZZLE_Y)); - ureg_MAX(shader, ureg_writemask(fragment, TGSI_WRITEMASK_W), -ureg_src(temp[0]), ureg_src(temp[1])); - - for (i = 0; i < 2; ++i) - ureg_release_temporary(shader, temp[i]); + create_frag_shader_csc(shader, texel, fragment); ureg_release_temporary(shader, texel); ureg_END(shader); @@ -190,7 +203,6 @@ create_frag_shader_weave(struct vl_compositor *c) { struct ureg_program *shader; struct ureg_src i_tc[2]; - struct ureg_src csc[3]; struct ureg_src sampler[3]; struct ureg_dst t_tc[2]; struct ureg_dst t_texel[2]; @@ -204,10 +216,8 @@ create_frag_shader_weave(struct vl_compositor *c) i_tc[0] = ureg_DECL_fs_input(shader, TGSI_SEMANTIC_GENERIC, VS_O_VTOP, TGSI_INTERPOLATE_LINEAR); i_tc[1] = ureg_DECL_fs_input(shader, TGSI_SEMANTIC_GENERIC, VS_O_VBOTTOM, TGSI_INTERPOLATE_LINEAR); - for (i = 0; i < 3; ++i) { - csc[i] = ureg_DECL_constant(shader, i); + for (i = 0; i < 3; ++i)
Mesa (master): i965: remove remaining tabs in brw_link.cpp
Module: Mesa Branch: master Commit: 456b5d9ac96c6147e7326d828ff7f4a508ffb9df URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=456b5d9ac96c6147e7326d828ff7f4a508ffb9df Author: Timothy ArceriDate: Thu Jun 16 16:12:09 2016 +1000 i965: remove remaining tabs in brw_link.cpp Acked-by: Kenneth Graunke --- src/mesa/drivers/dri/i965/brw_link.cpp | 26 +- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_link.cpp b/src/mesa/drivers/dri/i965/brw_link.cpp index 43b6132..3bb04fa 100644 --- a/src/mesa/drivers/dri/i965/brw_link.cpp +++ b/src/mesa/drivers/dri/i965/brw_link.cpp @@ -209,13 +209,13 @@ brw_link_shader(struct gl_context *ctx, struct gl_shader_program *shProg) for (stage = 0; stage < ARRAY_SIZE(shProg->_LinkedShaders); stage++) { struct gl_shader *shader = shProg->_LinkedShaders[stage]; if (!shader) -continue; + continue; struct gl_program *prog = -ctx->Driver.NewProgram(ctx, _mesa_shader_stage_to_program(stage), + ctx->Driver.NewProgram(ctx, _mesa_shader_stage_to_program(stage), shader->Name); if (!prog) - return false; +return false; prog->Parameters = _mesa_new_parameter_list(); _mesa_copy_linked_program_data((gl_shader_stage) stage, shProg, prog); @@ -230,19 +230,19 @@ brw_link_shader(struct gl_context *ctx, struct gl_shader_program *shProg) * get sent to the shader. */ foreach_in_list(ir_instruction, node, shader->ir) { -ir_variable *var = node->as_variable(); + ir_variable *var = node->as_variable(); -if ((var == NULL) || (var->data.mode != ir_var_uniform) -|| (strncmp(var->name, "gl_", 3) != 0)) - continue; + if ((var == NULL) || (var->data.mode != ir_var_uniform) + || (strncmp(var->name, "gl_", 3) != 0)) +continue; -const ir_state_slot *const slots = var->get_state_slots(); -assert(slots != NULL); + const ir_state_slot *const slots = var->get_state_slots(); + assert(slots != NULL); -for (unsigned int i = 0; i < var->get_num_state_slots(); i++) { - _mesa_add_state_reference(prog->Parameters, - (gl_state_index *) slots[i].tokens); -} + for (unsigned int i = 0; i < var->get_num_state_slots(); i++) { +_mesa_add_state_reference(prog->Parameters, + (gl_state_index *) slots[i].tokens); + } } do_set_program_inouts(shader->ir, prog, shader->Stage); ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit