summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRoland Scheidegger <[email protected]>2016-03-30 04:25:45 +0200
committerRoland Scheidegger <[email protected]>2016-03-30 04:26:54 +0200
commit2d3b8aefda1df66ef43c11c66e95ecb9a19c9137 (patch)
tree5b60aa6a8e8e9472d5b15fed9327c280e481afe7 /src
parent553e37aa337783d468f218291f6de6a74e49289b (diff)
tgsi: (trivial) only verify target for is_tex instructions
d3d10 state tracker does not encode (valid) target (only offsets are really used from the texture bits), since that information always comes from the sview dcl, and not the instruction (note the meaning of target is actually slightly different between gl and d3d10 in any case, because d3d10 target does never include shadow bit). Also move the msaa sampler identification as well - would need to set that on the sview not sampler, so while this does not fix it make it at least obvious it won't work with sample instructions.
Diffstat (limited to 'src')
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_scan.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/gallium/auxiliary/tgsi/tgsi_scan.c b/src/gallium/auxiliary/tgsi/tgsi_scan.c
index c71c7770bfb..76a6fef8b44 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_scan.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_scan.c
@@ -184,14 +184,14 @@ scan_instruction(struct tgsi_shader_info *info,
/* Texture samplers */
if (src->Register.File == TGSI_FILE_SAMPLER) {
const unsigned index = src->Register.Index;
- const unsigned target = fullinst->Texture.Texture;
assert(fullinst->Instruction.Texture);
assert(index < Elements(info->is_msaa_sampler));
assert(index < PIPE_MAX_SAMPLERS);
- assert(target < TGSI_TEXTURE_UNKNOWN);
if (tgsi_get_opcode_info(fullinst->Instruction.Opcode)->is_tex) {
+ const unsigned target = fullinst->Texture.Texture;
+ assert(target < TGSI_TEXTURE_UNKNOWN);
/* for texture instructions, check that the texture instruction
* target matches the previous sampler view declaration (if there
* was one.)
@@ -205,12 +205,11 @@ scan_instruction(struct tgsi_shader_info *info,
*/
assert(info->sampler_targets[index] == target);
}
- }
-
- /* MSAA samplers */
- if (target == TGSI_TEXTURE_2D_MSAA ||
- target == TGSI_TEXTURE_2D_ARRAY_MSAA) {
- info->is_msaa_sampler[src->Register.Index] = TRUE;
+ /* MSAA samplers */
+ if (target == TGSI_TEXTURE_2D_MSAA ||
+ target == TGSI_TEXTURE_2D_ARRAY_MSAA) {
+ info->is_msaa_sampler[src->Register.Index] = TRUE;
+ }
}
}