svga: use shader sampler view declarations
authorBrian Paul <brianp@vmware.com>
Fri, 18 Mar 2016 15:55:57 +0000 (09:55 -0600)
committerBrian Paul <brianp@vmware.com>
Mon, 21 Mar 2016 17:59:25 +0000 (11:59 -0600)
commitdc9ecf58c0c5c8a97cd41362e78c2fcd9f6e3b80
tree0f507a7a25a2d7b20d2c33432cb73af1c0f88dfe
parentb56b853ab3937d6144597f490bb38e2532d0cee2
svga: use shader sampler view declarations

Previously, we looked at the bound textures (via the pipe_sampler_views)
to determine texture dimensions (1D/2D/3D/etc) and datatype (float vs.
int).  But this could fail in out of memory conditions.  If we failed to
allocate a texture and didn't create a pipe_sampler_view, we'd default
to using 0 (PIPE_BUFFER) as the texture type.  This led to device errors
because of inconsistent shader code.

This change relies on all TGSI shaders having an SVIEW declaration for
each SAMP declaration.  The previous patch series does that.

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
src/gallium/drivers/svga/svga_shader.c
src/gallium/drivers/svga/svga_shader.h
src/gallium/drivers/svga/svga_tgsi_decl_sm30.c
src/gallium/drivers/svga/svga_tgsi_emit.h
src/gallium/drivers/svga/svga_tgsi_insn.c
src/gallium/drivers/svga/svga_tgsi_vgpu10.c