svga: allow TGSI_TEXTURE_CUBE_ARRAY in emit_tg4()
authorBrian Paul <brianp@vmware.com>
Fri, 17 Nov 2017 18:18:38 +0000 (11:18 -0700)
committerBrian Paul <brianp@vmware.com>
Mon, 10 Sep 2018 19:07:30 +0000 (13:07 -0600)
Technically, SM4.1 doesn't support cube map arrays, but our backend
renderers actually do.  This allows the Piglit textureGather cube
map array tests to pass.

Tested with GLrenderer, DX11renderer and SWrenderer.

Reviewed-by: Neha Bhende <bhenden@vmware.com>
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
src/gallium/drivers/svga/svga_tgsi_vgpu10.c

index abfbd523605a979ae274bbaeffeddc8a6781c453..876696183192e56c897b876291e3e4ef168857c1 100644 (file)
@@ -5329,7 +5329,6 @@ emit_tg4(struct svga_shader_emitter_v10 *emit,
          const struct tgsi_full_instruction *inst)
 {
    const uint unit = inst->Src[2].Register.Index;
-   unsigned target = inst->Texture.Texture;
    struct tgsi_full_src_register src;
    int offsets[3];
 
@@ -5337,12 +5336,8 @@ emit_tg4(struct svga_shader_emitter_v10 *emit,
    if (!is_valid_tex_instruction(emit, inst))
       return TRUE;
 
-   if (target == TGSI_TEXTURE_CUBE_ARRAY) {
-      debug_printf("TGSI_TEXTURE_CUBE_ARRAY is not supported\n");
-      return TRUE;
-   }
-
-   /* Only single channel is supported in SM4_1.
+   /* Only a single channel is supported in SM4_1 and we report
+    * PIPE_CAP_MAX_TEXTURE_GATHER_COMPONENTS = 1.
     * Only the 0th component will be gathered.
     */
    switch (emit->key.tex[unit].swizzle_r) {