freedreno: fix bind_sampler_states when hwcso is NULL
authorSerge Martin <edb+mesa@sigluy.net>
Sun, 6 Dec 2015 14:32:15 +0000 (15:32 +0100)
committerRob Clark <robclark@freedesktop.org>
Wed, 9 Dec 2015 22:30:58 +0000 (17:30 -0500)
src/gallium/tests/trivial/compute.c expects samplers to be cleaned
when the samplers list is NULL.
Like in radeon, the function behave like when the number of samplers
parameter is set to 0.

[small s/hwsco/hwcso/ typo fix]
Signed-off-by: Rob Clark <robclark@freedesktop.org>
src/gallium/drivers/freedreno/a2xx/fd2_texture.c
src/gallium/drivers/freedreno/a3xx/fd3_texture.c
src/gallium/drivers/freedreno/a4xx/fd4_texture.c

index 90013e260ce1131fc2ba983109fc405037747e39..6e4b5a5e72cf6356e8dc30f3dff29ca0802eaea4 100644 (file)
@@ -106,6 +106,9 @@ fd2_sampler_states_bind(struct pipe_context *pctx,
                unsigned shader, unsigned start,
                unsigned nr, void **hwcso)
 {
+       if (!hwcso)
+               nr = 0;
+
        if (shader == PIPE_SHADER_FRAGMENT) {
                struct fd_context *ctx = fd_context(pctx);
 
index 99ae99ea0c13ba0f8b6c7b81e8250e99c4b3a4a0..9d54d41e1adb4a2a9089b4df2fb152f7afbbdb51 100644 (file)
@@ -149,6 +149,9 @@ fd3_sampler_states_bind(struct pipe_context *pctx,
        uint16_t saturate_s = 0, saturate_t = 0, saturate_r = 0;
        unsigned i;
 
+       if (!hwcso)
+               nr = 0;
+
        for (i = 0; i < nr; i++) {
                if (hwcso[i]) {
                        struct fd3_sampler_stateobj *sampler =
index 0eba75577b05a5021442f4485d9b68c30cbb99f5..38348580e2169c940b5c2f69bcd2e55106d8347c 100644 (file)
@@ -150,6 +150,9 @@ fd4_sampler_states_bind(struct pipe_context *pctx,
        uint16_t saturate_s = 0, saturate_t = 0, saturate_r = 0;
        unsigned i;
 
+       if (!hwcso)
+               nr = 0;
+
        for (i = 0; i < nr; i++) {
                if (hwcso[i]) {
                        struct fd4_sampler_stateobj *sampler =