st/glsl_to_tgsi: handle offsets from inputs
authorDave Airlie <airlied@redhat.com>
Tue, 10 May 2016 01:41:02 +0000 (11:41 +1000)
committerDave Airlie <airlied@redhat.com>
Tue, 10 May 2016 03:14:29 +0000 (13:14 +1000)
This fixes:
GL45-CTS.gpu_shader5.texture_gather_offset_color_repeat

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
src/mesa/state_tracker/st_glsl_to_tgsi.cpp

index 060e854caa123d42de2d73056c2dee765954456f..7489fa368cf8fbae9875602d5ca0d16d6899137d 100644 (file)
@@ -5581,6 +5581,15 @@ translate_tex_offset(struct st_translate *t,
       offset.SwizzleZ = imm_src.SwizzleZ;
       offset.Padding = 0;
       break;
+   case PROGRAM_INPUT:
+      imm_src = t->inputs[t->inputMapping[imm_src.Index]];
+      offset.File = imm_src.File;
+      offset.Index = imm_src.Index;
+      offset.SwizzleX = GET_SWZ(in_offset->swizzle, 0);
+      offset.SwizzleY = GET_SWZ(in_offset->swizzle, 1);
+      offset.SwizzleZ = GET_SWZ(in_offset->swizzle, 2);
+      offset.Padding = 0;
+      break;
    case PROGRAM_TEMPORARY:
       imm_src = ureg_src(t->temps[in_offset->index]);
       offset.File = imm_src.File;