Browse Source

mesa: change MAX_PROGRAM_ADDRESS_REGS to 1, clamp to it in state tracker

We've never properly supported more than one address register.  There
isn't even a field in prog_src_register or prog_dst_register to indicate
which address register to use if RelAddr!=0.

In the state tracker, clamp MaxAddressRegs against MAX_PROGRAM_ADDRESS_REGS
since many gallium drivers do support more.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=65226

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
tags/mesa-9.2-rc1
Brian Paul 12 years ago
parent
commit
f270baf074
2 changed files with 3 additions and 2 deletions
  1. 1
    1
      src/mesa/main/config.h
  2. 2
    1
      src/mesa/state_tracker/st_extensions.c

+ 1
- 1
src/mesa/main/config.h View File

@@ -187,7 +187,7 @@
#define MAX_PROGRAM_MATRIX_STACK_DEPTH 4
#define MAX_PROGRAM_CALL_DEPTH 8
#define MAX_PROGRAM_TEMPS 256
#define MAX_PROGRAM_ADDRESS_REGS 2
#define MAX_PROGRAM_ADDRESS_REGS 1
#define MAX_VARYING 32 /**< number of float[4] vectors */
#define MAX_SAMPLERS MAX_TEXTURE_IMAGE_UNITS
#define MAX_PROGRAM_INPUTS 32

+ 2
- 1
src/mesa/state_tracker/st_extensions.c View File

@@ -187,7 +187,8 @@ void st_init_limits(struct st_context *st)
pc->MaxTemps = pc->MaxNativeTemps =
screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_MAX_TEMPS);
pc->MaxAddressRegs = pc->MaxNativeAddressRegs =
screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_MAX_ADDRS);
_min(screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_MAX_ADDRS),
MAX_PROGRAM_ADDRESS_REGS);
pc->MaxParameters = pc->MaxNativeParameters =
screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_MAX_CONSTS);


Loading…
Cancel
Save