Mesa (main): mesa: move gl_program::is_arb_asm to shader_info

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Jul 28 09:13:14 UTC 2021


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

Author: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer at amd.com>
Date:   Fri Jul 16 11:42:42 2021 +0200

mesa: move gl_program::is_arb_asm to shader_info

This will be used from radeonsi in the next commit.

Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11972>

---

 src/compiler/glsl/standalone.cpp   |  2 +-
 src/compiler/shader_info.h         |  5 +++++
 src/mesa/drivers/dri/i965/brw_vs.c | 10 +++++-----
 src/mesa/drivers/dri/i965/brw_wm.c | 14 +++++++-------
 src/mesa/main/mtypes.h             |  2 --
 src/mesa/program/ir_to_mesa.cpp    |  4 ++--
 src/mesa/program/program.c         |  2 +-
 7 files changed, 21 insertions(+), 18 deletions(-)

diff --git a/src/compiler/glsl/standalone.cpp b/src/compiler/glsl/standalone.cpp
index 1cf6d8afad1..0aa916a9c12 100644
--- a/src/compiler/glsl/standalone.cpp
+++ b/src/compiler/glsl/standalone.cpp
@@ -103,7 +103,7 @@ init_gl_program(struct gl_program *prog, bool is_arb_asm, gl_shader_stage stage)
 {
    prog->RefCount = 1;
    prog->Format = GL_PROGRAM_FORMAT_ASCII_ARB;
-   prog->is_arb_asm = is_arb_asm;
+   prog->info.is_arb_asm = is_arb_asm;
    prog->info.stage = stage;
 }
 
diff --git a/src/compiler/shader_info.h b/src/compiler/shader_info.h
index 2b73b544d60..6794f3d15a0 100644
--- a/src/compiler/shader_info.h
+++ b/src/compiler/shader_info.h
@@ -271,6 +271,11 @@ typedef struct shader_info {
     */
    bool workgroup_size_variable:1;
 
+   /**
+     * Is this an ARB assembly-style program.
+     */
+   bool is_arb_asm;
+
    union {
       struct {
          /* Which inputs are doubles */
diff --git a/src/mesa/drivers/dri/i965/brw_vs.c b/src/mesa/drivers/dri/i965/brw_vs.c
index 050bf7d36a5..e41bdcdd7ec 100644
--- a/src/mesa/drivers/dri/i965/brw_vs.c
+++ b/src/mesa/drivers/dri/i965/brw_vs.c
@@ -124,7 +124,7 @@ brw_codegen_vs_prog(struct brw_context *brw,
    memset(&prog_data, 0, sizeof(prog_data));
 
    /* Use ALT floating point mode for ARB programs so that 0^0 == 1. */
-   if (vp->program.is_arb_asm)
+   if (vp->program.info.is_arb_asm)
       stage_prog_data->use_alt_mode = true;
 
    mem_ctx = ralloc_context(NULL);
@@ -134,7 +134,7 @@ brw_codegen_vs_prog(struct brw_context *brw,
    brw_assign_common_binding_table_offsets(devinfo, &vp->program,
                                            &prog_data.base.base, 0);
 
-   if (!vp->program.is_arb_asm) {
+   if (!vp->program.info.is_arb_asm) {
       brw_nir_setup_glsl_uniforms(mem_ctx, nir, &vp->program,
                                   &prog_data.base.base,
                                   compiler->scalar_stage[MESA_SHADER_VERTEX]);
@@ -173,7 +173,7 @@ brw_codegen_vs_prog(struct brw_context *brw,
    }
 
    if (INTEL_DEBUG & DEBUG_VS) {
-      if (vp->program.is_arb_asm)
+      if (vp->program.info.is_arb_asm)
          brw_dump_arb_asm("vertex", &vp->program);
    }
 
@@ -191,12 +191,12 @@ brw_codegen_vs_prog(struct brw_context *brw,
       params.shader_time = true;
       params.shader_time_index =
          brw_get_shader_time_index(brw, &vp->program, ST_VS,
-                                   !vp->program.is_arb_asm);
+                                   !vp->program.info.is_arb_asm);
    }
 
    program = brw_compile_vs(compiler, mem_ctx, &params);
    if (program == NULL) {
-      if (!vp->program.is_arb_asm) {
+      if (!vp->program.info.is_arb_asm) {
          vp->program.sh.data->LinkStatus = LINKING_FAILURE;
          ralloc_strcat(&vp->program.sh.data->InfoLog, params.error_str);
       }
diff --git a/src/mesa/drivers/dri/i965/brw_wm.c b/src/mesa/drivers/dri/i965/brw_wm.c
index 615ab10aa45..7912f6ab034 100644
--- a/src/mesa/drivers/dri/i965/brw_wm.c
+++ b/src/mesa/drivers/dri/i965/brw_wm.c
@@ -86,12 +86,12 @@ brw_codegen_wm_prog(struct brw_context *brw,
    memset(&prog_data, 0, sizeof(prog_data));
 
    /* Use ALT floating point mode for ARB programs so that 0^0 == 1. */
-   if (fp->program.is_arb_asm)
+   if (fp->program.info.is_arb_asm)
       prog_data.base.use_alt_mode = true;
 
    assign_fs_binding_table_offsets(devinfo, &fp->program, key, &prog_data);
 
-   if (!fp->program.is_arb_asm) {
+   if (!fp->program.info.is_arb_asm) {
       brw_nir_setup_glsl_uniforms(mem_ctx, nir, &fp->program,
                                   &prog_data.base, true);
       if (brw->can_push_ubos) {
@@ -126,19 +126,19 @@ brw_codegen_wm_prog(struct brw_context *brw,
       params.shader_time = true;
       params.shader_time_index8 =
          brw_get_shader_time_index(brw, &fp->program, ST_FS8,
-                                   !fp->program.is_arb_asm);
+                                   !fp->program.info.is_arb_asm);
       params.shader_time_index16 =
          brw_get_shader_time_index(brw, &fp->program, ST_FS16,
-                                   !fp->program.is_arb_asm);
+                                   !fp->program.info.is_arb_asm);
       params.shader_time_index32 =
          brw_get_shader_time_index(brw, &fp->program, ST_FS32,
-                                   !fp->program.is_arb_asm);
+                                   !fp->program.info.is_arb_asm);
    }
 
    program = brw_compile_fs(brw->screen->compiler, mem_ctx, &params);
 
    if (program == NULL) {
-      if (!fp->program.is_arb_asm) {
+      if (!fp->program.info.is_arb_asm) {
          fp->program.sh.data->LinkStatus = LINKING_FAILURE;
          ralloc_strcat(&fp->program.sh.data->InfoLog, params.error_str);
       }
@@ -164,7 +164,7 @@ brw_codegen_wm_prog(struct brw_context *brw,
 
    brw_alloc_stage_scratch(brw, &brw->wm.base, prog_data.base.total_scratch);
 
-   if (((INTEL_DEBUG & DEBUG_WM) && fp->program.is_arb_asm))
+   if (((INTEL_DEBUG & DEBUG_WM) && fp->program.info.is_arb_asm))
       fprintf(stderr, "\n");
 
    /* The param and pull_param arrays will be freed by the shader cache. */
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index 32528a5f16b..fd3e32af8bc 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -2138,8 +2138,6 @@ struct gl_program
    void *driver_cache_blob;
    size_t driver_cache_blob_size;
 
-   bool is_arb_asm; /** Is this an ARB assembly-style program */
-
    /** Is this program written to on disk shader cache */
    bool program_written_to_cache;
 
diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp
index 96aa399aa63..8c2dc521443 100644
--- a/src/mesa/program/ir_to_mesa.cpp
+++ b/src/mesa/program/ir_to_mesa.cpp
@@ -2500,7 +2500,7 @@ _mesa_associate_uniform_storage(struct gl_context *ctx,
          unsigned columns = 0;
 
          int dmul;
-         if (ctx->Const.PackedDriverUniformStorage && !prog->is_arb_asm) {
+         if (ctx->Const.PackedDriverUniformStorage && !prog->info.is_arb_asm) {
             dmul = storage->type->vector_elements * sizeof(float);
          } else {
             dmul = 4 * sizeof(float);
@@ -2593,7 +2593,7 @@ _mesa_associate_uniform_storage(struct gl_context *ctx,
           * initializers in the source code to be copied over.
           */
          unsigned array_elements = MAX2(1, storage->array_elements);
-         if (ctx->Const.PackedDriverUniformStorage && !prog->is_arb_asm &&
+         if (ctx->Const.PackedDriverUniformStorage && !prog->info.is_arb_asm &&
              (storage->is_bindless || !storage->type->contains_opaque())) {
             const int dmul = storage->type->is_64bit() ? 2 : 1;
             const unsigned components =
diff --git a/src/mesa/program/program.c b/src/mesa/program/program.c
index f3b02ac5ae1..184386fba9b 100644
--- a/src/mesa/program/program.c
+++ b/src/mesa/program/program.c
@@ -194,7 +194,7 @@ _mesa_init_gl_program(struct gl_program *prog, gl_shader_stage stage,
    prog->RefCount = 1;
    prog->Format = GL_PROGRAM_FORMAT_ASCII_ARB;
    prog->info.stage = stage;
-   prog->is_arb_asm = is_arb_asm;
+   prog->info.is_arb_asm = is_arb_asm;
 
    /* Uniforms that lack an initializer in the shader code have an initial
     * value of zero.  This includes sampler uniforms.



More information about the mesa-commit mailing list