mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 18:18:06 +02:00
gallium: assorted state tracker fixes for > 8 texture samplers
This commit is contained in:
parent
84cffc2e7f
commit
d917ad5dbd
5 changed files with 13 additions and 7 deletions
|
|
@ -53,7 +53,7 @@ update_textures(struct st_context *st)
|
|||
st->state.num_textures = 0;
|
||||
|
||||
/* loop over sampler units (aka tex image units) */
|
||||
for (su = 0; su < st->ctx->Const.MaxTextureCoordUnits; su++) {
|
||||
for (su = 0; su < st->ctx->Const.MaxTextureImageUnits; su++) {
|
||||
struct pipe_texture *pt = NULL;
|
||||
|
||||
if (samplersUsed & (1 << su)) {
|
||||
|
|
|
|||
|
|
@ -84,9 +84,7 @@ void st_init_limits(struct st_context *st)
|
|||
c->MaxTextureRectSize
|
||||
= _min(1 << (c->MaxTextureLevels - 1), MAX_TEXTURE_RECT_SIZE);
|
||||
|
||||
c->MaxTextureUnits
|
||||
= c->MaxTextureImageUnits
|
||||
= c->MaxTextureCoordUnits
|
||||
c->MaxTextureImageUnits
|
||||
= _min(screen->get_param(screen, PIPE_CAP_MAX_TEXTURE_IMAGE_UNITS),
|
||||
MAX_TEXTURE_IMAGE_UNITS);
|
||||
|
||||
|
|
@ -94,6 +92,10 @@ void st_init_limits(struct st_context *st)
|
|||
= _min(screen->get_param(screen, PIPE_CAP_MAX_VERTEX_TEXTURE_UNITS),
|
||||
MAX_VERTEX_TEXTURE_IMAGE_UNITS);
|
||||
|
||||
c->MaxTextureCoordUnits = MAX_TEXTURE_COORD_UNITS;
|
||||
|
||||
c->MaxTextureUnits = MIN2(c->MaxTextureImageUnits, c->MaxTextureCoordUnits);
|
||||
|
||||
c->MaxDrawBuffers
|
||||
= _clamp(screen->get_param(screen, PIPE_CAP_MAX_RENDER_TARGETS),
|
||||
1, MAX_DRAW_BUFFERS);
|
||||
|
|
|
|||
|
|
@ -745,6 +745,7 @@ find_temporaries(const struct gl_program *program,
|
|||
*/
|
||||
GLuint
|
||||
st_translate_mesa_program(
|
||||
GLcontext *ctx,
|
||||
uint procType,
|
||||
const struct gl_program *program,
|
||||
GLuint numInputs,
|
||||
|
|
@ -992,7 +993,7 @@ st_translate_mesa_program(
|
|||
}
|
||||
|
||||
/* texture samplers */
|
||||
for (i = 0; i < 8; i++) {
|
||||
for (i = 0; i < ctx->Const.MaxTextureImageUnits; i++) {
|
||||
if (program->SamplersUsed & (1 << i)) {
|
||||
struct tgsi_full_declaration fulldecl;
|
||||
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ struct gl_program;
|
|||
|
||||
GLuint
|
||||
st_translate_mesa_program(
|
||||
GLcontext *ctx,
|
||||
uint procType,
|
||||
const struct gl_program *program,
|
||||
GLuint numInputs,
|
||||
|
|
|
|||
|
|
@ -317,7 +317,8 @@ st_translate_vertex_program(struct st_context *st,
|
|||
|
||||
/* XXX: fix static allocation of tokens:
|
||||
*/
|
||||
num_tokens = st_translate_mesa_program(TGSI_PROCESSOR_VERTEX,
|
||||
num_tokens = st_translate_mesa_program(st->ctx,
|
||||
TGSI_PROCESSOR_VERTEX,
|
||||
&stvp->Base.Base,
|
||||
/* inputs */
|
||||
vs_num_inputs,
|
||||
|
|
@ -503,7 +504,8 @@ st_translate_fragment_program(struct st_context *st,
|
|||
|
||||
/* XXX: fix static allocation of tokens:
|
||||
*/
|
||||
num_tokens = st_translate_mesa_program(TGSI_PROCESSOR_FRAGMENT,
|
||||
num_tokens = st_translate_mesa_program(st->ctx,
|
||||
TGSI_PROCESSOR_FRAGMENT,
|
||||
&stfp->Base.Base,
|
||||
/* inputs */
|
||||
fs_num_inputs,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue