Mesa (main): intel/compiler: Prepare disasm for 16-bit sampler params

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Nov 23 07:08:05 UTC 2021


Module: Mesa
Branch: main
Commit: 0d0eae07be6cf391cc48a283709ed7b57b33e20b
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=0d0eae07be6cf391cc48a283709ed7b57b33e20b

Author: Sagar Ghuge <sagar.ghuge at intel.com>
Date:   Tue Sep 21 16:16:51 2021 -0700

intel/compiler: Prepare disasm for 16-bit sampler params

v2:
- Update descriptor helper (Jason)

Signed-off-by: Sagar Ghuge <sagar.ghuge at intel.com>
Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
Reviewed-by: Francisco Jerez <currojerez at riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11766>

---

 src/intel/compiler/brw_disasm.c |  8 +++++++-
 src/intel/compiler/brw_eu.h     | 11 ++++++++---
 2 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/src/intel/compiler/brw_disasm.c b/src/intel/compiler/brw_disasm.c
index 9b1d9017fb6..4980ccbbde3 100644
--- a/src/intel/compiler/brw_disasm.c
+++ b/src/intel/compiler/brw_disasm.c
@@ -613,11 +613,13 @@ static const char *const gfx5_sampler_msg_type[] = {
    [GFX7_SAMPLER_MESSAGE_SAMPLE_LD2DSS]       = "ld2dss",
 };
 
-static const char *const gfx5_sampler_simd_mode[4] = {
+static const char *const gfx5_sampler_simd_mode[7] = {
    [BRW_SAMPLER_SIMD_MODE_SIMD4X2]   = "SIMD4x2",
    [BRW_SAMPLER_SIMD_MODE_SIMD8]     = "SIMD8",
    [BRW_SAMPLER_SIMD_MODE_SIMD16]    = "SIMD16",
    [BRW_SAMPLER_SIMD_MODE_SIMD32_64] = "SIMD32/64",
+   [GFX10_SAMPLER_SIMD_MODE_SIMD8H]  = "SIMD8H",
+   [GFX10_SAMPLER_SIMD_MODE_SIMD16H] = "SIMD16H",
 };
 
 static const char *const sampler_target_format[4] = {
@@ -2092,6 +2094,10 @@ brw_disassemble_inst(FILE *file, const struct intel_device_info *devinfo,
                err |= control(file, "sampler simd mode", gfx5_sampler_simd_mode,
                               brw_sampler_desc_simd_mode(devinfo, imm_desc),
                               &space);
+               if (devinfo->ver >= 8 &&
+                   brw_sampler_desc_return_format(devinfo, imm_desc)) {
+                  string(file, " HP");
+               }
                format(file, " Surface = %u Sampler = %u",
                       brw_sampler_desc_binding_table_index(devinfo, imm_desc),
                       brw_sampler_desc_sampler(devinfo, imm_desc));
diff --git a/src/intel/compiler/brw_eu.h b/src/intel/compiler/brw_eu.h
index 99de21d8742..7d240590d0d 100644
--- a/src/intel/compiler/brw_eu.h
+++ b/src/intel/compiler/brw_eu.h
@@ -452,7 +452,9 @@ brw_sampler_desc_simd_mode(const struct intel_device_info *devinfo,
                            uint32_t desc)
 {
    assert(devinfo->ver >= 5);
-   if (devinfo->ver >= 7)
+   if (devinfo->ver >= 8)
+      return GET_BITS(desc, 18, 17) | GET_BITS(desc, 29, 29) << 2;
+   else if (devinfo->ver >= 7)
       return GET_BITS(desc, 18, 17);
    else
       return GET_BITS(desc, 17, 16);
@@ -462,8 +464,11 @@ static  inline unsigned
 brw_sampler_desc_return_format(ASSERTED const struct intel_device_info *devinfo,
                                uint32_t desc)
 {
-   assert(devinfo->verx10 == 40);
-   return GET_BITS(desc, 13, 12);
+   assert(devinfo->verx10 == 40 || devinfo->ver >= 8);
+   if (devinfo->ver >= 8)
+      return GET_BITS(desc, 30, 30);
+   else
+      return GET_BITS(desc, 13, 12);
 }
 
 /**



More information about the mesa-commit mailing list