mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 18:18:06 +02:00
gallium: make sure to set the SamplersUsed field for bitmap/drawpixels shaders
Also, make sure that field is copied/updated in the program clone and combine functions. Without this we weren't getting SAMP declarations in the TGSI shaders.
This commit is contained in:
parent
84501e68f6
commit
72f2c55069
4 changed files with 5 additions and 0 deletions
|
|
@ -361,6 +361,7 @@ _mesa_clone_program(GLcontext *ctx, const struct gl_program *prog)
|
|||
prog->NumInstructions);
|
||||
clone->InputsRead = prog->InputsRead;
|
||||
clone->OutputsWritten = prog->OutputsWritten;
|
||||
clone->SamplersUsed = prog->SamplersUsed;
|
||||
memcpy(clone->TexturesUsed, prog->TexturesUsed, sizeof(prog->TexturesUsed));
|
||||
|
||||
if (prog->Parameters)
|
||||
|
|
@ -537,6 +538,7 @@ _mesa_combine_programs(GLcontext *ctx,
|
|||
}
|
||||
newProg->InputsRead = progA->InputsRead | inputsB;
|
||||
newProg->OutputsWritten = progB->OutputsWritten;
|
||||
newProg->SamplersUsed = progA->SamplersUsed | progB->SamplersUsed;
|
||||
}
|
||||
else {
|
||||
/* vertex program */
|
||||
|
|
|
|||
|
|
@ -130,6 +130,7 @@ get_pixel_transfer_program(GLcontext *ctx, const struct state_key *key)
|
|||
ic++;
|
||||
fp->Base.InputsRead = (1 << FRAG_ATTRIB_TEX0);
|
||||
fp->Base.OutputsWritten = (1 << FRAG_RESULT_COLR);
|
||||
fp->Base.SamplersUsed = 0x1; /* sampler 0 (bit 0) is used */
|
||||
|
||||
/* MAD colorTemp, colorTemp, scale, bias; */
|
||||
if (key->scaleAndBias) {
|
||||
|
|
|
|||
|
|
@ -148,6 +148,7 @@ make_bitmap_fragment_program(GLcontext *ctx)
|
|||
|
||||
p->InputsRead = FRAG_BIT_TEX0;
|
||||
p->OutputsWritten = 0x0;
|
||||
p->SamplersUsed = 0x1; /* sampler 0 (bit 0) is used */
|
||||
|
||||
stfp = (struct st_fragment_program *) p;
|
||||
stfp->Base.UsesKill = GL_TRUE;
|
||||
|
|
|
|||
|
|
@ -212,6 +212,7 @@ make_fragment_shader_z(struct st_context *st)
|
|||
|
||||
p->InputsRead = FRAG_BIT_TEX0 | FRAG_BIT_COL0;
|
||||
p->OutputsWritten = (1 << FRAG_RESULT_COLR) | (1 << FRAG_RESULT_DEPR);
|
||||
p->SamplersUsed = 0x1; /* sampler 0 (bit 0) is used */
|
||||
|
||||
stfp = (struct st_fragment_program *) p;
|
||||
st_translate_fragment_program(st, stfp, NULL);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue