diff options
author | Rob Clark <robclark@freedesktop.org> | 2014-03-27 14:47:48 -0400 |
---|---|---|
committer | Rob Clark <robclark@freedesktop.org> | 2014-03-30 09:38:16 -0400 |
commit | 92141afd0eda8ac4c3940fdb5682d39a5726e36a (patch) | |
tree | c42ce5cd8ec35d44d17235131792cd9f90c57c4f /src/gallium/drivers/freedreno/a2xx/fd2_emit.c | |
parent | 9b6b084eb7b10d006b44e3cd22585fc3e39e0c00 (diff) |
freedreno: handle null sampler
This is something that XA triggers. In some cases it will only use
SAMP[1] (composite mask) but not SAMP[0] (composite src).
Signed-off-by: Rob Clark <robclark@freedesktop.org>
Diffstat (limited to 'src/gallium/drivers/freedreno/a2xx/fd2_emit.c')
-rw-r--r-- | src/gallium/drivers/freedreno/a2xx/fd2_emit.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/gallium/drivers/freedreno/a2xx/fd2_emit.c b/src/gallium/drivers/freedreno/a2xx/fd2_emit.c index 35511ba2bd3..d1a586c8c9b 100644 --- a/src/gallium/drivers/freedreno/a2xx/fd2_emit.c +++ b/src/gallium/drivers/freedreno/a2xx/fd2_emit.c @@ -124,13 +124,16 @@ emit_texture(struct fd_ringbuffer *ring, struct fd_context *ctx, struct fd_texture_stateobj *tex, unsigned samp_id, texmask emitted) { unsigned const_idx = fd2_get_const_idx(ctx, tex, samp_id); + static const struct fd2_sampler_stateobj dummy_sampler = {}; struct fd2_sampler_stateobj *sampler; struct fd2_pipe_sampler_view *view; if (emitted & (1 << const_idx)) return 0; - sampler = fd2_sampler_stateobj(tex->samplers[samp_id]); + sampler = tex->samplers[samp_id] ? + fd2_sampler_stateobj(tex->samplers[samp_id]) : + &dummy_sampler; view = fd2_pipe_sampler_view(tex->textures[samp_id]); OUT_PKT3(ring, CP_SET_CONSTANT, 7); |