anv,hasvk,iris: sampler_prog_key::swizzles is only used on crocus
authorFaith Ekstrand <faith.ekstrand@collabora.com>
Fri, 21 Jul 2023 19:52:41 +0000 (14:52 -0500)
committerMarge Bot <emma+marge@anholt.net>
Mon, 24 Jul 2023 15:40:40 +0000 (15:40 +0000)
The field is no longer consumed by brw_complie_* and is instead handled
directly by the crocus driver.  Therefore, it's safe to leave it zero
and not even bother setting it.  This removes our reliance on the
SWIZZLE_* macros in prog_instructions.h.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24288>

src/gallium/drivers/iris/iris_program.c
src/intel/compiler/brw_compiler.h
src/intel/vulkan/anv_pipeline.c
src/intel/vulkan_hasvk/anv_pipeline.c

index 6a94366..0237123 100644 (file)
@@ -53,8 +53,7 @@
    .prefix.limit_trig_input_range = screen->driconf.limit_trig_input_range
 #define BRW_KEY_INIT(gen, prog_id, limit_trig_input)       \
    .base.program_string_id = prog_id,                      \
-   .base.limit_trig_input_range = limit_trig_input,        \
-   .base.tex.swizzles[0 ... BRW_MAX_SAMPLERS - 1] = 0x688
+   .base.limit_trig_input_range = limit_trig_input
 
 struct iris_threaded_compile_job {
    struct iris_screen *screen;
index 6187dd6..f0fcf83 100644 (file)
@@ -209,6 +209,9 @@ PRAGMA_DIAGNOSTIC_ERROR(-Wpadded)
 struct brw_sampler_prog_key_data {
    /**
     * EXT_texture_swizzle and DEPTH_TEXTURE_MODE swizzles.
+    *
+    * This field is not consumed by the back-end compiler and is only relevant
+    * for the crocus OpenGL driver for Broadwell and earlier hardware.
     */
    uint16_t swizzles[BRW_MAX_SAMPLERS];
 
index 8bb7674..bdcb9eb 100644 (file)
@@ -44,9 +44,6 @@
 #include "vk_render_pass.h"
 #include "vk_util.h"
 
-/* Needed for SWIZZLE macros */
-#include "program/prog_instruction.h"
-
 struct lower_set_vtx_and_prim_count_state {
    nir_variable *primitive_count;
 };
@@ -383,16 +380,6 @@ void anv_DestroyPipeline(
 }
 
 static void
-populate_sampler_prog_key(const struct intel_device_info *devinfo,
-                          struct brw_sampler_prog_key_data *key)
-{
-   for (int i = 0; i < BRW_MAX_SAMPLERS; i++) {
-      /* Assume color sampler, no swizzling. (Works for BDW+) */
-      key->swizzles[i] = SWIZZLE_XYZW;
-   }
-}
-
-static void
 populate_base_prog_key(const struct anv_device *device,
                        bool robust_buffer_acccess,
                        struct brw_base_prog_key *key)
@@ -400,8 +387,6 @@ populate_base_prog_key(const struct anv_device *device,
    key->robust_buffer_access = robust_buffer_acccess;
    key->limit_trig_input_range =
       device->physical->instance->limit_trig_input_range;
-
-   populate_sampler_prog_key(device->info, &key->tex);
 }
 
 static void
index 632721f..6277e8f 100644 (file)
@@ -42,9 +42,6 @@
 #include "vk_render_pass.h"
 #include "vk_util.h"
 
-/* Needed for SWIZZLE macros */
-#include "program/prog_instruction.h"
-
 /* Eventually, this will become part of anv_CreateShader.  Unfortunately,
  * we can't do that yet because we don't have the ability to copy nir.
  */
@@ -261,11 +258,7 @@ static void
 populate_sampler_prog_key(const struct intel_device_info *devinfo,
                           struct brw_sampler_prog_key_data *key)
 {
-   /* XXX: Handle texture swizzle on HSW- */
-   for (int i = 0; i < BRW_MAX_SAMPLERS; i++) {
-      /* Assume color sampler, no swizzling. (Works for BDW+) */
-      key->swizzles[i] = SWIZZLE_XYZW;
-   }
+   /* XXX: Handle texture swizzle Pre-HSW */
 }
 
 static void