mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-24 00:40:36 +02:00
r300g: Demonstratory kludge to unbreak glxgears.
We *must* recalculate something in vformat every rebind; let's see if we can't narrow it down a bit.
This commit is contained in:
parent
973aab1a52
commit
e5f1f6a0be
1 changed files with 16 additions and 12 deletions
|
|
@ -460,32 +460,36 @@ static void r300_update_derived_shader_state(struct r300_context* r300)
|
|||
value = (struct r300_shader_derived_value*)
|
||||
util_hash_table_get(r300->shader_hash_table, (void*)key);
|
||||
if (value) {
|
||||
vformat = value->vformat;
|
||||
//vformat = value->vformat;
|
||||
rs_block = value->rs_block;
|
||||
|
||||
FREE(key);
|
||||
} else {
|
||||
vformat = CALLOC_STRUCT(r300_vertex_format);
|
||||
rs_block = CALLOC_STRUCT(r300_rs_block);
|
||||
value = CALLOC_STRUCT(r300_shader_derived_value);
|
||||
|
||||
for (i = 0; i < 16; i++) {
|
||||
vformat->vs_tab[i] = -1;
|
||||
vformat->fs_tab[i] = -1;
|
||||
}
|
||||
|
||||
r300_vs_tab_routes(r300, vformat);
|
||||
r300_vertex_psc(r300, vformat);
|
||||
r300_update_fs_tab(r300, vformat);
|
||||
|
||||
r300_update_rs_block(r300, rs_block);
|
||||
|
||||
value->vformat = vformat;
|
||||
//value->vformat = vformat;
|
||||
value->rs_block = rs_block;
|
||||
util_hash_table_set(r300->shader_hash_table,
|
||||
(void*)key, (void*)value);
|
||||
}
|
||||
|
||||
/* XXX This will be refactored ASAP. */
|
||||
vformat = CALLOC_STRUCT(r300_vertex_format);
|
||||
|
||||
for (i = 0; i < 16; i++) {
|
||||
vformat->vs_tab[i] = -1;
|
||||
vformat->fs_tab[i] = -1;
|
||||
}
|
||||
|
||||
r300_vs_tab_routes(r300, vformat);
|
||||
r300_vertex_psc(r300, vformat);
|
||||
r300_update_fs_tab(r300, vformat);
|
||||
|
||||
FREE(r300->vertex_info);
|
||||
|
||||
r300->vertex_info = vformat;
|
||||
r300->rs_block = rs_block;
|
||||
r300->dirty_state |= (R300_NEW_VERTEX_FORMAT | R300_NEW_RS_BLOCK);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue