From: Neha Bhende Date: Fri, 21 Jul 2017 00:03:19 +0000 (-0700) Subject: svga: Limit number of immediates in shader X-Git-Tag: upstream/18.1.0~7538 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1820ef64c9914d8328d0306003f00063dfb2bca1;p=platform%2Fupstream%2Fmesa.git svga: Limit number of immediates in shader imm {128.0, -128.0, 2.0, 3.0} is used for lit instruction which is not used very frequently. So allocate it only if lit instruction is used. Tested with mtt piglit and mtt glretrace v2: As per Charmaine's comment Reviewed-by: Brian Paul Reviewed-by: Charmaine Lee --- diff --git a/src/gallium/drivers/svga/svga_tgsi_vgpu10.c b/src/gallium/drivers/svga/svga_tgsi_vgpu10.c index 71dafe7..d9b76c2 100644 --- a/src/gallium/drivers/svga/svga_tgsi_vgpu10.c +++ b/src/gallium/drivers/svga/svga_tgsi_vgpu10.c @@ -6275,15 +6275,17 @@ alloc_common_immediates(struct svga_shader_emitter_v10 *emit) emit->common_immediate_pos[n++] = alloc_immediate_float4(emit, 0.0f, 1.0f, 0.5f, -1.0f); - emit->common_immediate_pos[n++] = - alloc_immediate_float4(emit, 128.0f, -128.0f, 2.0f, 3.0f); + if (emit->info.opcode_count[TGSI_OPCODE_LIT] > 0) { + emit->common_immediate_pos[n++] = + alloc_immediate_float4(emit, 128.0f, -128.0f, 0.0f, 0.0f); + } emit->common_immediate_pos[n++] = alloc_immediate_int4(emit, 0, 1, 0, -1); if (emit->key.vs.attrib_puint_to_snorm) { emit->common_immediate_pos[n++] = - alloc_immediate_float4(emit, -2.0f, -2.0f, -2.0f, -1.66666f); + alloc_immediate_float4(emit, -2.0f, 2.0f, 3.0f, -1.66666f); } if (emit->key.vs.attrib_puint_to_uscaled) {