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

Author: Jesse Natalie <[email protected]>
Date:   Tue Nov  7 16:27:37 2023 -0800

microsoft/compiler: Bump signature limits for 32 rows of 4 components

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26156>

---

 src/microsoft/compiler/dxil_module.h    | 2 +-
 src/microsoft/compiler/dxil_signature.c | 6 +++---
 src/microsoft/compiler/dxil_signature.h | 2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/microsoft/compiler/dxil_module.h 
b/src/microsoft/compiler/dxil_module.h
index f07603dfafe..28a8ac5e72a 100644
--- a/src/microsoft/compiler/dxil_module.h
+++ b/src/microsoft/compiler/dxil_module.h
@@ -39,7 +39,7 @@ extern "C" {
 #include "util/list.h"
 
 
-#define DXIL_SHADER_MAX_IO_ROWS 80
+#define DXIL_SHADER_MAX_IO_ROWS 128
 
 enum dxil_shader_kind {
    DXIL_PIXEL_SHADER = 0,
diff --git a/src/microsoft/compiler/dxil_signature.c 
b/src/microsoft/compiler/dxil_signature.c
index 1d64939f097..a4be1e18f6d 100644
--- a/src/microsoft/compiler/dxil_signature.c
+++ b/src/microsoft/compiler/dxil_signature.c
@@ -425,7 +425,7 @@ append_semantic_index_to_table(struct 
dxil_psv_sem_index_table *table, uint32_t
          i += j - 1;
    }
    uint32_t retval = table->size;
-   assert(table->size + num_rows <= 80);
+   assert(table->size + num_rows <= ARRAY_SIZE(table->data));
    for (unsigned i = 0; i < num_rows; ++i)
       table->data[table->size++] = index + i;
    return retval;
@@ -591,7 +591,7 @@ get_input_signature_group(struct dxil_module *mod,
                                  semantic.start_row + semantic.rows);
 
       ++num_inputs;
-      assert(num_inputs < VARYING_SLOT_MAX);
+      assert(num_inputs < VARYING_SLOT_MAX * 4);
    }
    return num_inputs;
 }
@@ -849,7 +849,7 @@ get_signature_metadata(struct dxil_module *mod,
    if (num_elements == 0)
       return NULL;
 
-   const struct dxil_mdnode *nodes[VARYING_SLOT_MAX];
+   const struct dxil_mdnode *nodes[VARYING_SLOT_MAX * 4];
    for (unsigned i = 0; i < num_elements; ++i) {
       nodes[i] = fill_SV_param_nodes(mod, i, &recs[i], &psvs[i], is_input);
    }
diff --git a/src/microsoft/compiler/dxil_signature.h 
b/src/microsoft/compiler/dxil_signature.h
index 0ed708d9517..a7fdc98e689 100644
--- a/src/microsoft/compiler/dxil_signature.h
+++ b/src/microsoft/compiler/dxil_signature.h
@@ -63,7 +63,7 @@ struct dxil_signature_record {
 };
 
 struct dxil_psv_sem_index_table {
-   uint32_t data[80];
+   uint32_t data[128];
    uint32_t size;
 };
 

Reply via email to