From 12eba855444c67ff122ef5b8a427bf649f3fa661 Mon Sep 17 00:00:00 2001 From: Erik Faye-Lund Date: Sat, 5 Oct 2024 17:02:54 +0200 Subject: [PATCH] mesa: remove superfluous "native" limits and stats We don't ever set these to anything else than the same as the non-native counterparts. Let's drop the members in the first place, and use the non-native version instead. Reviewed-by: Alyssa Rosenzweig Part-of: --- src/mesa/main/arbprogram.c | 62 +++++++------------------- src/mesa/main/consts_exts.h | 9 ---- src/mesa/main/context.c | 12 ----- src/mesa/main/shader_types.h | 11 ----- src/mesa/program/arbprogparse.c | 13 ------ src/mesa/program/program_parse.y | 10 ----- src/mesa/state_tracker/st_extensions.c | 14 ++---- 7 files changed, 18 insertions(+), 113 deletions(-) diff --git a/src/mesa/main/arbprogram.c b/src/mesa/main/arbprogram.c index 6078c125fb4..00fa806ff0d 100644 --- a/src/mesa/main/arbprogram.c +++ b/src/mesa/main/arbprogram.c @@ -894,64 +894,44 @@ get_program_iv(struct gl_program *prog, GLenum target, GLenum pname, *params = prog->Id; return; case GL_PROGRAM_INSTRUCTIONS_ARB: + case GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB: *params = prog->arb.NumInstructions; return; case GL_MAX_PROGRAM_INSTRUCTIONS_ARB: + case GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB: *params = limits->MaxInstructions; return; - case GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB: - *params = prog->arb.NumNativeInstructions; - return; - case GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB: - *params = limits->MaxNativeInstructions; - return; case GL_PROGRAM_TEMPORARIES_ARB: + case GL_PROGRAM_NATIVE_TEMPORARIES_ARB: *params = prog->arb.NumTemporaries; return; case GL_MAX_PROGRAM_TEMPORARIES_ARB: + case GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB: *params = limits->MaxTemps; return; - case GL_PROGRAM_NATIVE_TEMPORARIES_ARB: - *params = prog->arb.NumNativeTemporaries; - return; - case GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB: - *params = limits->MaxNativeTemps; - return; case GL_PROGRAM_PARAMETERS_ARB: + case GL_PROGRAM_NATIVE_PARAMETERS_ARB: *params = prog->arb.NumParameters; return; case GL_MAX_PROGRAM_PARAMETERS_ARB: + case GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB: *params = limits->MaxParameters; return; - case GL_PROGRAM_NATIVE_PARAMETERS_ARB: - *params = prog->arb.NumNativeParameters; - return; - case GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB: - *params = limits->MaxNativeParameters; - return; case GL_PROGRAM_ATTRIBS_ARB: + case GL_PROGRAM_NATIVE_ATTRIBS_ARB: *params = prog->arb.NumAttributes; return; case GL_MAX_PROGRAM_ATTRIBS_ARB: + case GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB: *params = limits->MaxAttribs; return; - case GL_PROGRAM_NATIVE_ATTRIBS_ARB: - *params = prog->arb.NumNativeAttributes; - return; - case GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB: - *params = limits->MaxNativeAttribs; - return; case GL_PROGRAM_ADDRESS_REGISTERS_ARB: + case GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB: *params = prog->arb.NumAddressRegs; return; case GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB: - *params = limits->MaxAddressRegs; - return; - case GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB: - *params = prog->arb.NumNativeAddressRegs; - return; case GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB: - *params = limits->MaxNativeAddressRegs; + *params = limits->MaxAddressRegs; return; case GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB: *params = limits->MaxLocalParams; @@ -988,40 +968,28 @@ get_program_iv(struct gl_program *prog, GLenum target, GLenum pname, const struct gl_program *fp = ctx->FragmentProgram.Current; switch (pname) { case GL_PROGRAM_ALU_INSTRUCTIONS_ARB: - *params = fp->arb.NumNativeAluInstructions; - return; case GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB: *params = fp->arb.NumAluInstructions; return; case GL_PROGRAM_TEX_INSTRUCTIONS_ARB: + case GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB: *params = fp->arb.NumTexInstructions; return; - case GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB: - *params = fp->arb.NumNativeTexInstructions; - return; case GL_PROGRAM_TEX_INDIRECTIONS_ARB: + case GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB: *params = fp->arb.NumTexIndirections; return; - case GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB: - *params = fp->arb.NumNativeTexIndirections; - return; case GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB: + case GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB: *params = limits->MaxAluInstructions; return; - case GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB: - *params = limits->MaxNativeAluInstructions; - return; case GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB: + case GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB: *params = limits->MaxTexInstructions; return; - case GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB: - *params = limits->MaxNativeTexInstructions; - return; case GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB: - *params = limits->MaxTexIndirections; - return; case GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB: - *params = limits->MaxNativeTexIndirections; + *params = limits->MaxTexIndirections; return; default: _mesa_error(ctx, GL_INVALID_ENUM, "glGetProgramivARB(pname)"); diff --git a/src/mesa/main/consts_exts.h b/src/mesa/main/consts_exts.h index e0a5ed0c930..5359ec357f4 100644 --- a/src/mesa/main/consts_exts.h +++ b/src/mesa/main/consts_exts.h @@ -400,15 +400,6 @@ struct gl_program_constants GLuint MaxParameters; GLuint MaxLocalParams; GLuint MaxEnvParams; - /* native/hardware limits */ - GLuint MaxNativeInstructions; - GLuint MaxNativeAluInstructions; - GLuint MaxNativeTexInstructions; - GLuint MaxNativeTexIndirections; - GLuint MaxNativeAttribs; - GLuint MaxNativeTemps; - GLuint MaxNativeAddressRegs; - GLuint MaxNativeParameters; /* For shaders */ GLuint MaxUniformComponents; /**< Usually == MaxParameters * 4 */ diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c index cbe8b4c0914..be459693f77 100644 --- a/src/mesa/main/context.c +++ b/src/mesa/main/context.c @@ -328,18 +328,6 @@ init_program_limits(struct gl_constants *consts, gl_shader_stage stage, assert(0 && "Bad shader stage in init_program_limits()"); } - /* Set the native limits to zero. This implies that there is no native - * support for shaders. Let the drivers fill in the actual values. - */ - prog->MaxNativeInstructions = 0; - prog->MaxNativeAluInstructions = 0; - prog->MaxNativeTexInstructions = 0; - prog->MaxNativeTexIndirections = 0; - prog->MaxNativeAttribs = 0; - prog->MaxNativeTemps = 0; - prog->MaxNativeAddressRegs = 0; - prog->MaxNativeParameters = 0; - /* Set GLSL datatype range/precision info assuming IEEE float values. * Drivers should override these defaults as needed. */ diff --git a/src/mesa/main/shader_types.h b/src/mesa/main/shader_types.h index 2c35b869292..e16c2cfc6d1 100644 --- a/src/mesa/main/shader_types.h +++ b/src/mesa/main/shader_types.h @@ -646,17 +646,6 @@ struct gl_program GLuint NumTexInstructions; GLuint NumTexIndirections; /*@}*/ - /** Native, actual h/w counts */ - /*@{*/ - GLuint NumNativeInstructions; - GLuint NumNativeTemporaries; - GLuint NumNativeParameters; - GLuint NumNativeAttributes; - GLuint NumNativeAddressRegs; - GLuint NumNativeAluInstructions; - GLuint NumNativeTexInstructions; - GLuint NumNativeTexIndirections; - /*@}*/ /** Used by ARB assembly-style programs. Can only be true for vertex * programs. diff --git a/src/mesa/program/arbprogparse.c b/src/mesa/program/arbprogparse.c index ed67ca8db68..1d0b97045a3 100644 --- a/src/mesa/program/arbprogparse.c +++ b/src/mesa/program/arbprogparse.c @@ -96,17 +96,9 @@ _mesa_parse_arb_fragment_program(struct gl_context* ctx, GLenum target, program->arb.NumParameters = prog.arb.NumParameters; program->arb.NumAttributes = prog.arb.NumAttributes; program->arb.NumAddressRegs = prog.arb.NumAddressRegs; - program->arb.NumNativeInstructions = prog.arb.NumNativeInstructions; - program->arb.NumNativeTemporaries = prog.arb.NumNativeTemporaries; - program->arb.NumNativeParameters = prog.arb.NumNativeParameters; - program->arb.NumNativeAttributes = prog.arb.NumNativeAttributes; - program->arb.NumNativeAddressRegs = prog.arb.NumNativeAddressRegs; program->arb.NumAluInstructions = prog.arb.NumAluInstructions; program->arb.NumTexInstructions = prog.arb.NumTexInstructions; program->arb.NumTexIndirections = prog.arb.NumTexIndirections; - program->arb.NumNativeAluInstructions = prog.arb.NumAluInstructions; - program->arb.NumNativeTexInstructions = prog.arb.NumTexInstructions; - program->arb.NumNativeTexIndirections = prog.arb.NumTexIndirections; program->info.inputs_read = prog.info.inputs_read; program->info.outputs_written = prog.info.outputs_written; program->arb.IndirectRegisterFiles = prog.arb.IndirectRegisterFiles; @@ -174,11 +166,6 @@ _mesa_parse_arb_vertex_program(struct gl_context *ctx, GLenum target, program->arb.NumParameters = prog.arb.NumParameters; program->arb.NumAttributes = prog.arb.NumAttributes; program->arb.NumAddressRegs = prog.arb.NumAddressRegs; - program->arb.NumNativeInstructions = prog.arb.NumNativeInstructions; - program->arb.NumNativeTemporaries = prog.arb.NumNativeTemporaries; - program->arb.NumNativeParameters = prog.arb.NumNativeParameters; - program->arb.NumNativeAttributes = prog.arb.NumNativeAttributes; - program->arb.NumNativeAddressRegs = prog.arb.NumNativeAddressRegs; program->info.inputs_read = prog.info.inputs_read; program->info.outputs_written = prog.info.outputs_written; program->arb.IndirectRegisterFiles = prog.arb.IndirectRegisterFiles; diff --git a/src/mesa/program/program_parse.y b/src/mesa/program/program_parse.y index ed552fc1827..ea5a4af551a 100644 --- a/src/mesa/program/program_parse.y +++ b/src/mesa/program/program_parse.y @@ -2643,16 +2643,6 @@ _mesa_parse_arb_program(struct gl_context *ctx, GLenum target, const GLubyte *st state->prog->arb.NumAttributes = util_bitcount64(state->prog->info.inputs_read); - /* - * Initialize native counts to logical counts. The device driver may - * change them if program is translated into a hardware program. - */ - state->prog->arb.NumNativeInstructions = state->prog->arb.NumInstructions; - state->prog->arb.NumNativeTemporaries = state->prog->arb.NumTemporaries; - state->prog->arb.NumNativeParameters = state->prog->arb.NumParameters; - state->prog->arb.NumNativeAttributes = state->prog->arb.NumAttributes; - state->prog->arb.NumNativeAddressRegs = state->prog->arb.NumAddressRegs; - result = GL_TRUE; error: diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c index c256d186a15..2caf1dc2d0e 100644 --- a/src/mesa/state_tracker/st_extensions.c +++ b/src/mesa/state_tracker/st_extensions.c @@ -223,28 +223,21 @@ void st_init_limits(struct pipe_screen *screen, MAX_TEXTURE_IMAGE_UNITS); pc->MaxInstructions = - pc->MaxNativeInstructions = screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_MAX_INSTRUCTIONS); pc->MaxAluInstructions = - pc->MaxNativeAluInstructions = screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_MAX_ALU_INSTRUCTIONS); pc->MaxTexInstructions = - pc->MaxNativeTexInstructions = screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_MAX_TEX_INSTRUCTIONS); pc->MaxTexIndirections = - pc->MaxNativeTexIndirections = screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_MAX_TEX_INDIRECTIONS); pc->MaxAttribs = - pc->MaxNativeAttribs = screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_MAX_INPUTS); pc->MaxTemps = - pc->MaxNativeTemps = screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_MAX_TEMPS); - pc->MaxAddressRegs = - pc->MaxNativeAddressRegs = sh == PIPE_SHADER_VERTEX ? 1 : 0; + pc->MaxAddressRegs = sh == PIPE_SHADER_VERTEX ? 1 : 0; pc->MaxUniformComponents = screen->get_shader_param(screen, sh, @@ -274,8 +267,7 @@ void st_init_limits(struct pipe_screen *screen, * internal values in addition to what the source program uses. So, we * drop the limit one step lower, to 2048, to be safe. */ - pc->MaxParameters = - pc->MaxNativeParameters = MIN2(pc->MaxUniformComponents / 4, 2048); + pc->MaxParameters = MIN2(pc->MaxUniformComponents / 4, 2048); pc->MaxInputComponents = screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_MAX_INPUTS) * 4; pc->MaxOutputComponents = @@ -370,7 +362,7 @@ void st_init_limits(struct pipe_screen *screen, !screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_INDIRECT_CONST_ADDR); - if (pc->MaxNativeInstructions && + if (pc->MaxInstructions && (options->EmitNoIndirectUniform || pc->MaxUniformBlocks < 12)) { can_ubo = false; }