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