diff options
author | Glenn Kennard <[email protected]> | 2014-08-17 22:26:19 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2014-08-19 16:30:13 +0200 |
commit | dfa10ed2640a350a84e6e31edd22560155cd5016 (patch) | |
tree | 1fe5c1378d50b757ab4446de2944239bd092e451 /src/gallium/drivers/r600/r600_isa.h | |
parent | ef1cf69cd34701ea005a244909c71357a3dddb06 (diff) |
r600g: Fix missing SET_TEXTURE_OFFSETS
SB needs a bit of special handling to handle
instructions without obvious side effects, to
avoid it deleting them.
Fixes failing non-const ARB_gpu_shader5
textureOffsets piglits with sb enabled.
Signed-off-by: Glenn Kennard <[email protected]>
Signed-off-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600/r600_isa.h')
-rw-r--r-- | src/gallium/drivers/r600/r600_isa.h | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/gallium/drivers/r600/r600_isa.h b/src/gallium/drivers/r600/r600_isa.h index c6bb869fd10..ec3f7028a98 100644 --- a/src/gallium/drivers/r600/r600_isa.h +++ b/src/gallium/drivers/r600/r600_isa.h @@ -123,6 +123,9 @@ enum fetch_op_flags FF_VTX = (1<<5), FF_MEM = (1<<6), + + FF_SET_TEXTURE_OFFSETS = (1<<7), + FF_USE_TEXTURE_OFFSETS = (1<<8), }; /* flags for CF instructions */ @@ -523,7 +526,7 @@ static const struct fetch_op_info fetch_op_table[] = { {"GET_GRADIENTS_H_FINE", { -1, -1, 0x000107, 0x000107 }, FF_GETGRAD }, {"GET_GRADIENTS_V_FINE", { -1, -1, 0x000108, 0x000108 }, FF_GETGRAD }, {"GET_LERP", { 0x000009, 0x000009, -1, -1 }, 0 }, - {"SET_TEXTURE_OFFSETS", { -1, -1, 0x000009, 0x000009 }, 0 }, + {"SET_TEXTURE_OFFSETS", { -1, -1, 0x000009, 0x000009 }, FF_SET_TEXTURE_OFFSETS }, {"KEEP_GRADIENTS", { -1, 0x00000A, 0x00000A, 0x00000A }, 0 }, {"SET_GRADIENTS_H", { 0x00000B, 0x00000B, 0x00000B, 0x00000B }, FF_SETGRAD }, {"SET_GRADIENTS_V", { 0x00000C, 0x00000C, 0x00000C, 0x00000C }, FF_SETGRAD }, @@ -550,7 +553,7 @@ static const struct fetch_op_info fetch_op_table[] = { {"GATHER4", { -1, -1, 0x000015, 0x000015 }, FF_TEX }, {"SAMPLE_G_LB", { 0x000016, 0x000016, 0x000016, 0x000016 }, FF_TEX | FF_USEGRAD}, {"SAMPLE_G_LZ", { 0x000017, 0x000017, -1, -1 }, FF_TEX | FF_USEGRAD}, - {"GATHER4_O", { -1, -1, 0x000017, 0x000017 }, FF_TEX }, + {"GATHER4_O", { -1, -1, 0x000017, 0x000017 }, FF_TEX | FF_USE_TEXTURE_OFFSETS}, {"SAMPLE_C", { 0x000018, 0x000018, 0x000018, 0x000018 }, FF_TEX }, {"SAMPLE_C_L", { 0x000019, 0x000019, 0x000019, 0x000019 }, FF_TEX }, {"SAMPLE_C_LB", { 0x00001A, 0x00001A, 0x00001A, 0x00001A }, FF_TEX }, @@ -560,7 +563,7 @@ static const struct fetch_op_info fetch_op_table[] = { {"GATHER4_C", { -1, -1, 0x00001D, 0x00001D }, FF_TEX }, {"SAMPLE_C_G_LB", { 0x00001E, 0x00001E, 0x00001E, 0x00001E }, FF_TEX | FF_USEGRAD}, {"SAMPLE_C_G_LZ", { 0x00001F, 0x00001F, -1, -1 }, FF_TEX | FF_USEGRAD}, - {"GATHER4_C_O", { -1, -1, 0x00001F, 0x00001F }, FF_TEX } + {"GATHER4_C_O", { -1, -1, 0x00001F, 0x00001F }, FF_TEX | FF_USE_TEXTURE_OFFSETS} }; static const struct cf_op_info cf_op_table[] = { |