anv/meta: Use array textures for 2D
authorJason Ekstrand <jason.ekstrand@intel.com>
Sat, 21 Nov 2015 00:00:32 +0000 (16:00 -0800)
committerJason Ekstrand <jason.ekstrand@intel.com>
Sat, 21 Nov 2015 00:00:34 +0000 (16:00 -0800)
This a total of 1 extra instruction in the shader and gives us a lot more
flexibility in how we do blits.

src/vulkan/anv_meta.c

index 7cf60768158ec9d9578924ca9146d9b6d9b9851c..5df33c0a8d1153b6e338bb74404fcc51cb26eda8 100644 (file)
@@ -95,16 +95,9 @@ build_nir_copy_fragment_shader(enum glsl_sampler_dim tex_dim)
    tex->src[0].src = nir_src_for_ssa(nir_load_var(&b, tex_pos_in));
    tex->dest_type = nir_type_float; /* TODO */
 
-   switch (tex_dim) {
-   case GLSL_SAMPLER_DIM_2D:
-      tex->coord_components = 2;
-      break;
-   case GLSL_SAMPLER_DIM_3D:
-      tex->coord_components = 3;
-      break;
-   default:
-      assert(!"Unsupported texture dimension");
-   }
+   if (tex_dim == GLSL_SAMPLER_DIM_2D)
+      tex->is_array = true;
+   tex->coord_components = 3;
 
    tex->sampler = nir_deref_var_create(tex, sampler);