From: Michel Dänzer <michel.daen...@amd.com>

These aren't covered by UTIL_FORMAT_TYPE_FLOAT.

Fixes 15 piglit (sub)tests.

Signed-off-by: Michel Dänzer <michel.daen...@amd.com>
---
 src/gallium/drivers/radeonsi/si_state.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_state.c 
b/src/gallium/drivers/radeonsi/si_state.c
index cd40e1a..a27dbdd 100644
--- a/src/gallium/drivers/radeonsi/si_state.c
+++ b/src/gallium/drivers/radeonsi/si_state.c
@@ -1613,7 +1613,7 @@ static void si_cb(struct r600_context *rctx, struct 
si_pm4_state *pm4,
                        break;
                }
        }
-       if (desc->channel[i].type == UTIL_FORMAT_TYPE_FLOAT) {
+       if (i == 4 || desc->channel[i].type == UTIL_FORMAT_TYPE_FLOAT) {
                ntype = V_028C70_NUMBER_FLOAT;
        } else {
                ntype = V_028C70_NUMBER_UNORM;
@@ -2087,7 +2087,9 @@ static struct pipe_sampler_view 
*si_create_sampler_view(struct pipe_context *ctx
        util_format_compose_swizzles(desc->swizzle, state_swizzle, swizzle);
 
        first_non_void = util_format_get_first_non_void_channel(pipe_format);
-       switch (desc->channel[first_non_void].type) {
+       if (first_non_void < 0) {
+               num_format = V_008F14_IMG_NUM_FORMAT_FLOAT;
+       } else switch (desc->channel[first_non_void].type) {
        case UTIL_FORMAT_TYPE_FLOAT:
                num_format = V_008F14_IMG_NUM_FORMAT_FLOAT;
                break;
-- 
1.7.10.4

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to