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, ¶ms);
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, ¶ms);
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