summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/i965/brw_wm.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_wm.c')
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm.c26
1 files changed, 7 insertions, 19 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_wm.c b/src/mesa/drivers/dri/i965/brw_wm.c
index b7f027c5d6..2d6249e3b5 100644
--- a/src/mesa/drivers/dri/i965/brw_wm.c
+++ b/src/mesa/drivers/dri/i965/brw_wm.c
@@ -326,30 +326,18 @@ static void brw_upload_wm_prog( struct brw_context *brw )
struct brw_wm_prog_key key;
struct brw_fragment_program *fp = (struct brw_fragment_program *)
brw->fragment_program;
- struct brw_wm_prog_data *prog_data;
- uint32_t offset;
-
+
brw_wm_populate_key(brw, &key);
/* Make an early check for the key.
*/
- if (brw_search_cache(&brw->cache[BRW_WM_PROG],
+ if (brw_search_cache(&brw->cache[BRW_WM_PROG],
&key, sizeof(key),
- &prog_data,
- &offset)) {
- if (offset != brw->wm.prog_gs_offset ||
- !brw->wm.prog_data ||
- memcmp(prog_data, &brw->wm.prog_data,
- sizeof(*brw->wm.prog_data)) != 0)
- {
- brw->wm.prog_gs_offset = offset;
- brw->wm.prog_data = prog_data;
- brw->state.dirty.cache |= CACHE_NEW_WM_PROG;
- }
- } else {
- do_wm_prog(brw, fp, &key);
- brw->state.dirty.cache |= CACHE_NEW_WM_PROG;
- }
+ &brw->wm.prog_data,
+ &brw->wm.prog_gs_offset))
+ return;
+
+ do_wm_prog(brw, fp, &key);
}