summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/vc5/vc5_program.c
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2017-12-29 11:48:41 -0800
committerEric Anholt <[email protected]>2018-01-03 14:25:23 -0800
commit476469955225e15f454e01dc80047dd5fa5c9f97 (patch)
tree57ea220e209807c33f0eed0c70c0a57863beeecb /src/gallium/drivers/vc5/vc5_program.c
parentba965084b60e702b41beaea75237bfa39335b6cb (diff)
braodcom/vc5: Rely on OVRTMUOUT always being set.
It seems that the HW team has decided that it's the only supported mode, and it's the mode I actually meant to be using but forgot. Our table of return_32_bit should have matched the default non-OVRTMUOUT behavior, so this change should be invisible. However, the change revealed that some my return_size checks for swizzling were a bit confused in the shadow case, so I had to move them to draw time once we have both the sampler and the view together. Fixes assertion failures in the updated simulator, where the non-OVRTMUOUT support has been removed.
Diffstat (limited to 'src/gallium/drivers/vc5/vc5_program.c')
-rw-r--r--src/gallium/drivers/vc5/vc5_program.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/gallium/drivers/vc5/vc5_program.c b/src/gallium/drivers/vc5/vc5_program.c
index a356d0645d8..4232d6aeb83 100644
--- a/src/gallium/drivers/vc5/vc5_program.c
+++ b/src/gallium/drivers/vc5/vc5_program.c
@@ -273,7 +273,8 @@ vc5_setup_shared_key(struct vc5_context *vc5, struct v3d_key *key,
continue;
key->tex[i].return_size =
- vc5_get_tex_return_size(sampler->format);
+ vc5_get_tex_return_size(sampler->format,
+ sampler_state->compare_mode);
/* For 16-bit, we set up the sampler to always return 2
* channels (meaning no recompiles for most statechanges),
@@ -286,7 +287,7 @@ vc5_setup_shared_key(struct vc5_context *vc5, struct v3d_key *key,
vc5_get_tex_return_channels(sampler->format);
}
- if (vc5_get_tex_return_size(sampler->format) == 32) {
+ if (key->tex[i].return_size == 32) {
memcpy(key->tex[i].swizzle,
vc5_sampler->swizzle,
sizeof(vc5_sampler->swizzle));