mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 17:48:10 +02:00
r300g: fix emission of which textures are enabled
It fixes most of the "Bad CS" issues in piglit/texCombine and piglit/fbo. Some other issues of this kind will get fixed in the kernel soon (depth-only rendering, S3TC, and RGTC).
This commit is contained in:
parent
ded4ecde60
commit
2ddee2cfbc
1 changed files with 12 additions and 1 deletions
|
|
@ -883,10 +883,21 @@ void r300_emit_viewport_state(struct r300_context* r300,
|
||||||
|
|
||||||
void r300_emit_texture_count(struct r300_context* r300)
|
void r300_emit_texture_count(struct r300_context* r300)
|
||||||
{
|
{
|
||||||
|
uint32_t tx_enable = 0;
|
||||||
|
int i;
|
||||||
CS_LOCALS(r300);
|
CS_LOCALS(r300);
|
||||||
|
|
||||||
|
/* Notice that texture_count and sampler_count are just sizes
|
||||||
|
* of the respective arrays. We still have to check for the individual
|
||||||
|
* elements. */
|
||||||
|
for (i = 0; i < MIN2(r300->sampler_count, r300->texture_count); i++) {
|
||||||
|
if (r300->textures[i]) {
|
||||||
|
tx_enable |= 1 << i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
BEGIN_CS(2);
|
BEGIN_CS(2);
|
||||||
OUT_CS_REG(R300_TX_ENABLE, (1 << r300->texture_count) - 1);
|
OUT_CS_REG(R300_TX_ENABLE, tx_enable);
|
||||||
END_CS;
|
END_CS;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue