mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-03-06 05:40:30 +01:00
r300g: emit R300_TEX_ENABLE to indicate there are no textures bound
Previously, this reg wasn't emitted at all if texture_count == 0.
This commit is contained in:
parent
ae70cd1f02
commit
015e7e7724
2 changed files with 15 additions and 2 deletions
|
|
@ -837,13 +837,22 @@ void r300_emit_viewport_state(struct r300_context* r300,
|
|||
END_CS;
|
||||
}
|
||||
|
||||
void r300_emit_texture_count(struct r300_context* r300)
|
||||
{
|
||||
CS_LOCALS(r300);
|
||||
|
||||
BEGIN_CS(2);
|
||||
OUT_CS_REG(R300_TX_ENABLE, (1 << r300->texture_count) - 1);
|
||||
END_CS;
|
||||
|
||||
}
|
||||
|
||||
void r300_flush_textures(struct r300_context* r300)
|
||||
{
|
||||
CS_LOCALS(r300);
|
||||
|
||||
BEGIN_CS(4);
|
||||
BEGIN_CS(2);
|
||||
OUT_CS_REG(R300_TX_INVALTAGS, 0);
|
||||
OUT_CS_REG(R300_TX_ENABLE, (1 << r300->texture_count) - 1);
|
||||
END_CS;
|
||||
}
|
||||
|
||||
|
|
@ -997,6 +1006,8 @@ validate:
|
|||
/* Samplers and textures are tracked separately but emitted together. */
|
||||
if (r300->dirty_state &
|
||||
(R300_ANY_NEW_SAMPLERS | R300_ANY_NEW_TEXTURES)) {
|
||||
r300_emit_texture_count(r300);
|
||||
|
||||
for (i = 0; i < MIN2(r300->sampler_count, r300->texture_count); i++) {
|
||||
if (r300->dirty_state &
|
||||
((R300_NEW_SAMPLER << i) | (R300_NEW_TEXTURE << i))) {
|
||||
|
|
|
|||
|
|
@ -92,6 +92,8 @@ void r300_emit_vertex_shader(struct r300_context* r300,
|
|||
void r300_emit_viewport_state(struct r300_context* r300,
|
||||
struct r300_viewport_state* viewport);
|
||||
|
||||
void r300_emit_texture_count(struct r300_context* r300);
|
||||
|
||||
void r300_flush_textures(struct r300_context* r300);
|
||||
|
||||
/* Emit all dirty state. */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue