i965: Rename CACHE_NEW_*_PROG to BRW_NEW_*_PROG_DATA.

Now that we've moved a bunch of CACHE_NEW_* bits to BRW_NEW_*, the only
ones that are left are legitimately related to the program cache.  Yet,
it seems a bit wasteful to have an entire bitfield for only 7 bits.

State upload is one of the hottest paths in the driver.  For each atom
in the list, we call check_state() to see if it needs to be emitted.
Currently, this involves comparing three separate bitfields (mesa, brw,
and cache).  Consolidating the brw and cache bitfields would save a
small amount of CPU overhead per atom.  Broadwell, for example, has
57 state atoms, so this small savings can add up.

CACHE_NEW_*_PROG covers the brw_*_prog_data structures, as well as the
offset into the program cache BO (prog_offset).  Since most uses refer
to brw_*_prog_data, I decided to use BRW_NEW_*_PROG_DATA as the name.

Removing "cache" completely is a bit painful, so I decided to do it in
several patches for easier review, and to separate mechanical changes
from manual ones.  This one simply renames things, and was made via:

$ for file in *.[ch]; do
      sed -i -e 's/CACHE_NEW_\([A-Z_\*]*\)_PROG/BRW_NEW_\1_PROG_DATA/g' \
             -e 's/BRW_NEW_WM_PROG_DATA/BRW_NEW_FS_PROG_DATA/g' $file
  done

Note that BRW_NEW_*_PROG_DATA is still in .cache, not .brw!
The next patch will remedy this flaw.  It will also fix the
alphabetization issues.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
Acked-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
Kenneth Graunke 2014-11-24 23:30:51 -08:00
parent 2a4f5728ad
commit ce44b2061c
33 changed files with 124 additions and 124 deletions

View file

@ -56,7 +56,7 @@ brw_upload_binding_table(struct brw_context *brw,
GLbitfield brw_new_binding_table,
struct brw_stage_state *stage_state)
{
/* CACHE_NEW_*_PROG */
/* BRW_NEW_*_PROG_DATA */
struct brw_stage_prog_data *prog_data = stage_state->prog_data;
if (prog_data->binding_table.size_bytes == 0) {
@ -112,7 +112,7 @@ const struct brw_tracked_state brw_vs_binding_table = {
.brw = BRW_NEW_BATCH |
BRW_NEW_VS_CONSTBUF |
BRW_NEW_SURFACES,
.cache = CACHE_NEW_VS_PROG
.cache = BRW_NEW_VS_PROG_DATA
},
.emit = brw_vs_upload_binding_table,
};
@ -132,7 +132,7 @@ const struct brw_tracked_state brw_wm_binding_table = {
.mesa = 0,
.brw = BRW_NEW_BATCH |
BRW_NEW_SURFACES,
.cache = CACHE_NEW_WM_PROG
.cache = BRW_NEW_FS_PROG_DATA
},
.emit = brw_upload_wm_binding_table,
};
@ -156,7 +156,7 @@ const struct brw_tracked_state brw_gs_binding_table = {
.brw = BRW_NEW_BATCH |
BRW_NEW_GS_CONSTBUF |
BRW_NEW_SURFACES,
.cache = CACHE_NEW_GS_PROG
.cache = BRW_NEW_GS_PROG_DATA
},
.emit = brw_gs_upload_binding_table,
};

View file

@ -67,7 +67,7 @@ brw_upload_clip_unit(struct brw_context *brw)
sizeof(*clip), 32, &brw->clip.state_offset);
memset(clip, 0, sizeof(*clip));
/* BRW_NEW_PROGRAM_CACHE | CACHE_NEW_CLIP_PROG */
/* BRW_NEW_PROGRAM_CACHE | BRW_NEW_CLIP_PROG_DATA */
clip->thread0.grf_reg_count = (ALIGN(brw->clip.prog_data->total_grf, 16) /
16 - 1);
clip->thread0.kernel_start_pointer =
@ -170,7 +170,7 @@ const struct brw_tracked_state brw_clip_unit = {
BRW_NEW_CURBE_OFFSETS |
BRW_NEW_PROGRAM_CACHE |
BRW_NEW_URB_FENCE,
.cache = CACHE_NEW_CLIP_PROG
.cache = BRW_NEW_CLIP_PROG_DATA
},
.emit = brw_upload_clip_unit,
};

View file

@ -248,7 +248,7 @@ struct brw_state_flags {
*
* Now almost all of that state is just streamed out on demand, but the
* flags for those state blobs updating have stayed in the same bitfield.
* brw_state_cache.c still flags CACHE_NEW_*_PROG.
* brw_state_cache.c still flags BRW_NEW_*_PROG_DATA.
*/
GLuint cache;
};
@ -777,13 +777,13 @@ enum shader_time_shader_type {
/* Flags for brw->state.cache.
*/
#define CACHE_NEW_WM_PROG (1 << BRW_CACHE_FS_PROG)
#define CACHE_NEW_BLORP_BLIT_PROG (1 << BRW_CACHE_BLORP_BLIT_PROG)
#define CACHE_NEW_SF_PROG (1 << BRW_CACHE_SF_PROG)
#define CACHE_NEW_VS_PROG (1 << BRW_CACHE_VS_PROG)
#define CACHE_NEW_FF_GS_PROG (1 << BRW_CACHE_FF_GS_PROG)
#define CACHE_NEW_GS_PROG (1 << BRW_CACHE_GS_PROG)
#define CACHE_NEW_CLIP_PROG (1 << BRW_CACHE_CLIP_PROG)
#define BRW_NEW_FS_PROG_DATA (1 << BRW_CACHE_FS_PROG)
#define BRW_NEW_BLORP_BLIT_PROG_DATA (1 << BRW_CACHE_BLORP_BLIT_PROG)
#define BRW_NEW_SF_PROG_DATA (1 << BRW_CACHE_SF_PROG)
#define BRW_NEW_VS_PROG_DATA (1 << BRW_CACHE_VS_PROG)
#define BRW_NEW_FF_GS_PROG_DATA (1 << BRW_CACHE_FF_GS_PROG)
#define BRW_NEW_GS_PROG_DATA (1 << BRW_CACHE_GS_PROG)
#define BRW_NEW_CLIP_PROG_DATA (1 << BRW_CACHE_CLIP_PROG)
struct brw_vertex_buffer {
/** Buffer object containing the uploaded vertex data */

View file

@ -75,10 +75,10 @@
static void calculate_curbe_offsets( struct brw_context *brw )
{
struct gl_context *ctx = &brw->ctx;
/* CACHE_NEW_WM_PROG */
/* BRW_NEW_FS_PROG_DATA */
const GLuint nr_fp_regs = (brw->wm.prog_data->base.nr_params + 15) / 16;
/* CACHE_NEW_VS_PROG */
/* BRW_NEW_VS_PROG_DATA */
const GLuint nr_vp_regs = (brw->vs.prog_data->base.base.nr_params + 15) / 16;
GLuint nr_clip_regs = 0;
GLuint total_regs;
@ -143,8 +143,8 @@ const struct brw_tracked_state brw_curbe_offsets = {
.dirty = {
.mesa = _NEW_TRANSFORM,
.brw = BRW_NEW_CONTEXT,
.cache = CACHE_NEW_VS_PROG |
CACHE_NEW_WM_PROG
.cache = BRW_NEW_VS_PROG_DATA |
BRW_NEW_FS_PROG_DATA
},
.emit = calculate_curbe_offsets
};
@ -217,7 +217,7 @@ brw_upload_constant_buffer(struct brw_context *brw)
/* BRW_NEW_CURBE_OFFSETS */
GLuint offset = brw->curbe.wm_start * 16;
/* CACHE_NEW_WM_PROG | _NEW_PROGRAM_CONSTANTS: copy uniform values */
/* BRW_NEW_FS_PROG_DATA | _NEW_PROGRAM_CONSTANTS: copy uniform values */
for (i = 0; i < brw->wm.prog_data->base.nr_params; i++) {
buf[offset + i] = *brw->wm.prog_data->base.param[i];
}
@ -258,7 +258,7 @@ brw_upload_constant_buffer(struct brw_context *brw)
GLuint offset = brw->curbe.vs_start * 16;
/* CACHE_NEW_VS_PROG | _NEW_PROGRAM_CONSTANTS: copy uniform values */
/* BRW_NEW_VS_PROG_DATA | _NEW_PROGRAM_CONSTANTS: copy uniform values */
for (i = 0; i < brw->vs.prog_data->base.base.nr_params; i++) {
buf[offset + i] = *brw->vs.prog_data->base.base.param[i];
}
@ -313,8 +313,8 @@ const struct brw_tracked_state brw_constant_buffer = {
BRW_NEW_CURBE_OFFSETS |
BRW_NEW_PSP | /* Implicit - hardware requires this, not used above */
BRW_NEW_URB_FENCE,
.cache = CACHE_NEW_VS_PROG |
CACHE_NEW_WM_PROG
.cache = BRW_NEW_VS_PROG_DATA |
BRW_NEW_FS_PROG_DATA
},
.emit = brw_upload_constant_buffer,
};

View file

@ -400,7 +400,7 @@ void
brw_prepare_vertices(struct brw_context *brw)
{
struct gl_context *ctx = &brw->ctx;
/* CACHE_NEW_VS_PROG */
/* BRW_NEW_VS_PROG_DATA */
GLbitfield64 vs_inputs = brw->vs.prog_data->inputs_read;
const unsigned char *ptr = NULL;
GLuint interleaved = 0;
@ -871,7 +871,7 @@ const struct brw_tracked_state brw_vertices = {
.mesa = _NEW_POLYGON,
.brw = BRW_NEW_BATCH |
BRW_NEW_VERTICES,
.cache = CACHE_NEW_VS_PROG,
.cache = BRW_NEW_VS_PROG_DATA,
},
.emit = brw_emit_vertices,
};

View file

@ -161,7 +161,7 @@ static void populate_key(struct brw_context *brw,
memset(key, 0, sizeof(*key));
/* CACHE_NEW_VS_PROG (part of VUE map) */
/* BRW_NEW_VS_PROG_DATA (part of VUE map) */
key->attrs = brw->vs.prog_data->base.vue_map.slots_valid;
/* BRW_NEW_PRIMITIVE */
@ -230,7 +230,7 @@ brw_upload_ff_gs_prog(struct brw_context *brw)
populate_key(brw, &key);
if (brw->ff_gs.prog_active != key.need_gs_prog) {
brw->state.dirty.cache |= CACHE_NEW_FF_GS_PROG;
brw->state.dirty.cache |= BRW_NEW_FF_GS_PROG_DATA;
brw->ff_gs.prog_active = key.need_gs_prog;
}
@ -253,7 +253,7 @@ const struct brw_tracked_state brw_ff_gs_prog = {
.mesa = _NEW_LIGHT,
.brw = BRW_NEW_PRIMITIVE |
BRW_NEW_TRANSFORM_FEEDBACK,
.cache = CACHE_NEW_VS_PROG
.cache = BRW_NEW_VS_PROG_DATA
},
.emit = brw_upload_ff_gs_prog
};

View file

@ -45,7 +45,7 @@ brw_upload_gs_unit(struct brw_context *brw)
memset(gs, 0, sizeof(*gs));
/* BRW_NEW_PROGRAM_CACHE | CACHE_NEW_GS_PROG */
/* BRW_NEW_PROGRAM_CACHE | BRW_NEW_GS_PROG_DATA */
if (brw->ff_gs.prog_active) {
gs->thread0.grf_reg_count = (ALIGN(brw->ff_gs.prog_data->total_grf, 16) /
16 - 1);
@ -95,7 +95,7 @@ const struct brw_tracked_state brw_gs_unit = {
BRW_NEW_CURBE_OFFSETS |
BRW_NEW_PROGRAM_CACHE |
BRW_NEW_URB_FENCE,
.cache = CACHE_NEW_FF_GS_PROG
.cache = BRW_NEW_FF_GS_PROG_DATA
},
.emit = brw_upload_gs_unit,
};

View file

@ -46,7 +46,7 @@ brw_upload_gs_pull_constants(struct brw_context *brw)
if (!gp)
return;
/* CACHE_NEW_GS_PROG */
/* BRW_NEW_GS_PROG_DATA */
const struct brw_stage_prog_data *prog_data = &brw->gs.prog_data->base.base;
/* _NEW_PROGRAM_CONSTANTS */
@ -59,7 +59,7 @@ const struct brw_tracked_state brw_gs_pull_constants = {
.mesa = _NEW_PROGRAM_CONSTANTS,
.brw = BRW_NEW_BATCH |
BRW_NEW_GEOMETRY_PROGRAM,
.cache = CACHE_NEW_GS_PROG,
.cache = BRW_NEW_GS_PROG_DATA,
},
.emit = brw_upload_gs_pull_constants,
};
@ -76,7 +76,7 @@ brw_upload_gs_ubo_surfaces(struct brw_context *brw)
if (!prog)
return;
/* CACHE_NEW_GS_PROG */
/* BRW_NEW_GS_PROG_DATA */
brw_upload_ubo_surfaces(brw, prog->_LinkedShaders[MESA_SHADER_GEOMETRY],
&brw->gs.base, &brw->gs.prog_data->base.base);
}
@ -86,7 +86,7 @@ const struct brw_tracked_state brw_gs_ubo_surfaces = {
.mesa = _NEW_PROGRAM,
.brw = BRW_NEW_BATCH |
BRW_NEW_UNIFORM_BUFFER,
.cache = CACHE_NEW_GS_PROG,
.cache = BRW_NEW_GS_PROG_DATA,
},
.emit = brw_upload_gs_ubo_surfaces,
};
@ -100,7 +100,7 @@ brw_upload_gs_abo_surfaces(struct brw_context *brw)
ctx->_Shader->CurrentProgram[MESA_SHADER_GEOMETRY];
if (prog) {
/* CACHE_NEW_GS_PROG */
/* BRW_NEW_GS_PROG_DATA */
brw_upload_abo_surfaces(brw, prog, &brw->gs.base,
&brw->gs.prog_data->base.base);
}
@ -111,7 +111,7 @@ const struct brw_tracked_state brw_gs_abo_surfaces = {
.mesa = _NEW_PROGRAM,
.brw = BRW_NEW_ATOMIC_BUFFER |
BRW_NEW_BATCH,
.cache = CACHE_NEW_GS_PROG,
.cache = BRW_NEW_GS_PROG_DATA,
},
.emit = brw_upload_gs_abo_surfaces,
};

View file

@ -120,7 +120,7 @@ const struct brw_tracked_state brw_psp_urb_cbs = {
BRW_NEW_GEN4_UNIT_STATE |
BRW_NEW_STATE_BASE_ADDRESS |
BRW_NEW_URB_FENCE,
.cache = CACHE_NEW_FF_GS_PROG,
.cache = BRW_NEW_FF_GS_PROG_DATA,
},
.emit = upload_psp_urb_cbs,
};

View file

@ -136,7 +136,7 @@ static void upload_sf_unit( struct brw_context *brw )
memset(sf, 0, sizeof(*sf));
/* BRW_NEW_PROGRAM_CACHE | CACHE_NEW_SF_PROG */
/* BRW_NEW_PROGRAM_CACHE | BRW_NEW_SF_PROG_DATA */
sf->thread0.grf_reg_count = ALIGN(brw->sf.prog_data->total_grf, 16) / 16 - 1;
sf->thread0.kernel_start_pointer =
brw_program_reloc(brw,
@ -150,7 +150,7 @@ static void upload_sf_unit( struct brw_context *brw )
sf->thread3.dispatch_grf_start_reg = 3;
sf->thread3.urb_entry_read_offset = BRW_SF_URB_ENTRY_READ_OFFSET;
/* CACHE_NEW_SF_PROG */
/* BRW_NEW_SF_PROG_DATA */
sf->thread3.urb_entry_read_length = brw->sf.prog_data->urb_read_length;
/* BRW_NEW_URB_FENCE */
@ -308,7 +308,7 @@ const struct brw_tracked_state brw_sf_unit = {
BRW_NEW_PROGRAM_CACHE |
BRW_NEW_SF_VP |
BRW_NEW_URB_FENCE,
.cache = CACHE_NEW_SF_PROG,
.cache = BRW_NEW_SF_PROG_DATA,
},
.emit = upload_sf_unit,
};

View file

@ -528,13 +528,13 @@ static struct dirty_bit_map brw_bits[] = {
};
static struct dirty_bit_map cache_bits[] = {
DEFINE_BIT(CACHE_NEW_WM_PROG),
DEFINE_BIT(CACHE_NEW_BLORP_BLIT_PROG),
DEFINE_BIT(CACHE_NEW_SF_PROG),
DEFINE_BIT(CACHE_NEW_VS_PROG),
DEFINE_BIT(CACHE_NEW_FF_GS_PROG),
DEFINE_BIT(CACHE_NEW_GS_PROG),
DEFINE_BIT(CACHE_NEW_CLIP_PROG),
DEFINE_BIT(BRW_NEW_FS_PROG_DATA),
DEFINE_BIT(BRW_NEW_BLORP_BLIT_PROG_DATA),
DEFINE_BIT(BRW_NEW_SF_PROG_DATA),
DEFINE_BIT(BRW_NEW_VS_PROG_DATA),
DEFINE_BIT(BRW_NEW_FF_GS_PROG_DATA),
DEFINE_BIT(BRW_NEW_GS_PROG_DATA),
DEFINE_BIT(BRW_NEW_CLIP_PROG_DATA),
{0, 0, 0}
};

View file

@ -213,8 +213,8 @@ const struct brw_tracked_state brw_recalculate_urb_fence = {
.dirty = {
.mesa = 0,
.brw = BRW_NEW_CURBE_OFFSETS,
.cache = CACHE_NEW_SF_PROG |
CACHE_NEW_VS_PROG,
.cache = BRW_NEW_SF_PROG_DATA |
BRW_NEW_VS_PROG_DATA,
},
.emit = recalculate_urb_fence
};

View file

@ -47,7 +47,7 @@ brw_upload_vs_unit(struct brw_context *brw)
sizeof(*vs), 32, &stage_state->state_offset);
memset(vs, 0, sizeof(*vs));
/* BRW_NEW_PROGRAM_CACHE | CACHE_NEW_VS_PROG */
/* BRW_NEW_PROGRAM_CACHE | BRW_NEW_VS_PROG_DATA */
vs->thread0.grf_reg_count =
ALIGN(brw->vs.prog_data->base.total_grf, 16) / 16 - 1;
vs->thread0.kernel_start_pointer =
@ -193,7 +193,7 @@ const struct brw_tracked_state brw_vs_unit = {
BRW_NEW_SAMPLER_STATE_TABLE |
BRW_NEW_URB_FENCE |
BRW_NEW_VERTEX_PROGRAM,
.cache = CACHE_NEW_VS_PROG,
.cache = BRW_NEW_VS_PROG_DATA,
},
.emit = brw_upload_vs_unit,
};

View file

@ -72,7 +72,7 @@ brw_upload_pull_constants(struct brw_context *brw,
*/
_mesa_load_state_parameters(&brw->ctx, prog->Parameters);
/* CACHE_NEW_*_PROG | _NEW_PROGRAM_CONSTANTS */
/* BRW_NEW_*_PROG_DATA | _NEW_PROGRAM_CONSTANTS */
uint32_t size = prog_data->nr_pull_params * 4;
drm_intel_bo *const_bo = NULL;
uint32_t const_offset;
@ -117,7 +117,7 @@ brw_upload_vs_pull_constants(struct brw_context *brw)
struct brw_vertex_program *vp =
(struct brw_vertex_program *) brw->vertex_program;
/* CACHE_NEW_VS_PROG */
/* BRW_NEW_VS_PROG_DATA */
const struct brw_stage_prog_data *prog_data = &brw->vs.prog_data->base.base;
/* _NEW_PROGRAM_CONSTANTS */
@ -130,7 +130,7 @@ const struct brw_tracked_state brw_vs_pull_constants = {
.mesa = _NEW_PROGRAM_CONSTANTS,
.brw = BRW_NEW_BATCH |
BRW_NEW_VERTEX_PROGRAM,
.cache = CACHE_NEW_VS_PROG,
.cache = BRW_NEW_VS_PROG_DATA,
},
.emit = brw_upload_vs_pull_constants,
};
@ -146,7 +146,7 @@ brw_upload_vs_ubo_surfaces(struct brw_context *brw)
if (!prog)
return;
/* CACHE_NEW_VS_PROG */
/* BRW_NEW_VS_PROG_DATA */
brw_upload_ubo_surfaces(brw, prog->_LinkedShaders[MESA_SHADER_VERTEX],
&brw->vs.base, &brw->vs.prog_data->base.base);
}
@ -156,7 +156,7 @@ const struct brw_tracked_state brw_vs_ubo_surfaces = {
.mesa = _NEW_PROGRAM,
.brw = BRW_NEW_BATCH |
BRW_NEW_UNIFORM_BUFFER,
.cache = CACHE_NEW_VS_PROG,
.cache = BRW_NEW_VS_PROG_DATA,
},
.emit = brw_upload_vs_ubo_surfaces,
};
@ -170,7 +170,7 @@ brw_upload_vs_abo_surfaces(struct brw_context *brw)
ctx->_Shader->CurrentProgram[MESA_SHADER_VERTEX];
if (prog) {
/* CACHE_NEW_VS_PROG */
/* BRW_NEW_VS_PROG_DATA */
brw_upload_abo_surfaces(brw, prog, &brw->vs.base,
&brw->vs.prog_data->base.base);
}
@ -181,7 +181,7 @@ const struct brw_tracked_state brw_vs_abo_surfaces = {
.mesa = _NEW_PROGRAM,
.brw = BRW_NEW_ATOMIC_BUFFER |
BRW_NEW_BATCH,
.cache = CACHE_NEW_VS_PROG,
.cache = BRW_NEW_VS_PROG_DATA,
},
.emit = brw_upload_vs_abo_surfaces,
};

View file

@ -77,7 +77,7 @@ brw_upload_wm_unit(struct brw_context *brw)
struct gl_context *ctx = &brw->ctx;
/* BRW_NEW_FRAGMENT_PROGRAM */
const struct gl_fragment_program *fp = brw->fragment_program;
/* CACHE_NEW_WM_PROG */
/* BRW_NEW_FS_PROG_DATA */
const struct brw_wm_prog_data *prog_data = brw->wm.prog_data;
struct brw_wm_unit_state *wm;
@ -94,7 +94,7 @@ brw_upload_wm_unit(struct brw_context *brw)
prog_data->dispatch_grf_start_reg_16);
}
/* BRW_NEW_PROGRAM_CACHE | CACHE_NEW_WM_PROG */
/* BRW_NEW_PROGRAM_CACHE | BRW_NEW_FS_PROG_DATA */
wm->thread0.grf_reg_count = prog_data->reg_blocks;
wm->wm9.grf_reg_count_2 = prog_data->reg_blocks_16;
@ -258,7 +258,7 @@ const struct brw_tracked_state brw_wm_unit = {
BRW_NEW_PROGRAM_CACHE |
BRW_NEW_SAMPLER_STATE_TABLE |
BRW_NEW_STATS_WM,
.cache = CACHE_NEW_WM_PROG,
.cache = BRW_NEW_FS_PROG_DATA,
},
.emit = brw_upload_wm_unit,
};

View file

@ -483,7 +483,7 @@ brw_upload_wm_pull_constants(struct brw_context *brw)
/* BRW_NEW_FRAGMENT_PROGRAM */
struct brw_fragment_program *fp =
(struct brw_fragment_program *) brw->fragment_program;
/* CACHE_NEW_WM_PROG */
/* BRW_NEW_FS_PROG_DATA */
struct brw_stage_prog_data *prog_data = &brw->wm.prog_data->base;
/* _NEW_PROGRAM_CONSTANTS */
@ -496,7 +496,7 @@ const struct brw_tracked_state brw_wm_pull_constants = {
.mesa = _NEW_PROGRAM_CONSTANTS,
.brw = BRW_NEW_BATCH |
BRW_NEW_FRAGMENT_PROGRAM,
.cache = CACHE_NEW_WM_PROG,
.cache = BRW_NEW_FS_PROG_DATA,
},
.emit = brw_upload_wm_pull_constants,
};
@ -883,7 +883,7 @@ brw_upload_wm_ubo_surfaces(struct brw_context *brw)
if (!prog)
return;
/* CACHE_NEW_WM_PROG */
/* BRW_NEW_FS_PROG_DATA */
brw_upload_ubo_surfaces(brw, prog->_LinkedShaders[MESA_SHADER_FRAGMENT],
&brw->wm.base, &brw->wm.prog_data->base);
}
@ -893,7 +893,7 @@ const struct brw_tracked_state brw_wm_ubo_surfaces = {
.mesa = _NEW_PROGRAM,
.brw = BRW_NEW_BATCH |
BRW_NEW_UNIFORM_BUFFER,
.cache = CACHE_NEW_WM_PROG,
.cache = BRW_NEW_FS_PROG_DATA,
},
.emit = brw_upload_wm_ubo_surfaces,
};
@ -933,7 +933,7 @@ brw_upload_wm_abo_surfaces(struct brw_context *brw)
struct gl_shader_program *prog = ctx->Shader._CurrentFragmentProgram;
if (prog) {
/* CACHE_NEW_WM_PROG */
/* BRW_NEW_FS_PROG_DATA */
brw_upload_abo_surfaces(brw, prog, &brw->wm.base,
&brw->wm.prog_data->base);
}
@ -944,7 +944,7 @@ const struct brw_tracked_state brw_wm_abo_surfaces = {
.mesa = _NEW_PROGRAM,
.brw = BRW_NEW_ATOMIC_BUFFER |
BRW_NEW_BATCH,
.cache = CACHE_NEW_WM_PROG,
.cache = BRW_NEW_FS_PROG_DATA,
},
.emit = brw_upload_wm_abo_surfaces,
};

View file

@ -43,7 +43,7 @@ upload_clip_state(struct brw_context *brw)
/* _NEW_BUFFERS */
struct gl_framebuffer *fb = ctx->DrawBuffer;
/* CACHE_NEW_WM_PROG */
/* BRW_NEW_FS_PROG_DATA */
if (brw->wm.prog_data->barycentric_interp_modes &
BRW_WM_NONPERSPECTIVE_BARYCENTRIC_BITS) {
dw2 |= GEN6_CLIP_NON_PERSPECTIVE_BARYCENTRIC_ENABLE;
@ -189,7 +189,7 @@ const struct brw_tracked_state gen6_clip_state = {
.brw = BRW_NEW_CONTEXT |
BRW_NEW_META_IN_PROGRESS |
BRW_NEW_RASTERIZER_DISCARD,
.cache = CACHE_NEW_WM_PROG
.cache = BRW_NEW_FS_PROG_DATA
},
.emit = upload_clip_state,
};
@ -203,7 +203,7 @@ const struct brw_tracked_state gen7_clip_state = {
.brw = BRW_NEW_CONTEXT |
BRW_NEW_META_IN_PROGRESS |
BRW_NEW_RASTERIZER_DISCARD,
.cache = CACHE_NEW_WM_PROG
.cache = BRW_NEW_FS_PROG_DATA
},
.emit = upload_clip_state,
};

View file

@ -40,7 +40,7 @@ gen6_upload_gs_push_constants(struct brw_context *brw)
(struct brw_geometry_program *) brw->geometry_program;
if (gp) {
/* CACHE_NEW_GS_PROG */
/* BRW_NEW_GS_PROG_DATA */
struct brw_stage_prog_data *prog_data = &brw->gs.prog_data->base.base;
gen6_upload_push_constants(brw, &gp->program.Base, prog_data,
@ -58,7 +58,7 @@ const struct brw_tracked_state gen6_gs_push_constants = {
.brw = BRW_NEW_BATCH |
BRW_NEW_GEOMETRY_PROGRAM |
BRW_NEW_PUSH_CONSTANT_ALLOCATION,
.cache = CACHE_NEW_GS_PROG,
.cache = BRW_NEW_GS_PROG_DATA,
},
.emit = gen6_upload_gs_push_constants,
};
@ -90,7 +90,7 @@ upload_gs_state(struct brw_context *brw)
{
/* BRW_NEW_GEOMETRY_PROGRAM */
bool active = brw->geometry_program;
/* CACHE_NEW_GS_PROG */
/* BRW_NEW_GS_PROG_DATA */
const struct brw_vec4_prog_data *prog_data = &brw->gs.prog_data->base;
const struct brw_stage_state *stage_state = &brw->gs.base;
@ -202,8 +202,8 @@ const struct brw_tracked_state gen6_gs_state = {
BRW_NEW_CONTEXT |
BRW_NEW_GEOMETRY_PROGRAM |
BRW_NEW_PUSH_CONSTANT_ALLOCATION,
.cache = CACHE_NEW_FF_GS_PROG |
CACHE_NEW_GS_PROG,
.cache = BRW_NEW_FF_GS_PROG_DATA |
BRW_NEW_GS_PROG_DATA,
},
.emit = upload_gs_state,
};

View file

@ -190,7 +190,7 @@ calculate_attr_overrides(const struct brw_context *brw,
enum glsl_interp_qualifier interp_qualifier =
brw->fragment_program->InterpQualifier[attr];
bool is_gl_Color = attr == VARYING_SLOT_COL0 || attr == VARYING_SLOT_COL1;
/* CACHE_NEW_WM_PROG */
/* BRW_NEW_FS_PROG_DATA */
int input_index = brw->wm.prog_data->urb_setup[attr];
if (input_index < 0)
@ -259,7 +259,7 @@ static void
upload_sf_state(struct brw_context *brw)
{
struct gl_context *ctx = &brw->ctx;
/* CACHE_NEW_WM_PROG */
/* BRW_NEW_FS_PROG_DATA */
uint32_t num_outputs = brw->wm.prog_data->num_varying_inputs;
uint32_t dw1, dw2, dw3, dw4;
uint32_t point_sprite_enables;
@ -405,7 +405,7 @@ upload_sf_state(struct brw_context *brw)
}
/* BRW_NEW_VUE_MAP_GEOM_OUT | BRW_NEW_FRAGMENT_PROGRAM |
* _NEW_POINT | _NEW_LIGHT | _NEW_PROGRAM | CACHE_NEW_WM_PROG
* _NEW_POINT | _NEW_LIGHT | _NEW_PROGRAM | BRW_NEW_FS_PROG_DATA
*/
uint32_t urb_entry_read_length;
calculate_attr_overrides(brw, attr_overrides, &point_sprite_enables,
@ -447,7 +447,7 @@ const struct brw_tracked_state gen6_sf_state = {
BRW_NEW_GEOMETRY_PROGRAM |
BRW_NEW_PRIMITIVE |
BRW_NEW_VUE_MAP_GEOM_OUT,
.cache = CACHE_NEW_WM_PROG
.cache = BRW_NEW_FS_PROG_DATA
},
.emit = upload_sf_state,
};

View file

@ -54,7 +54,7 @@ gen6_upload_urb( struct brw_context *brw )
bool gs_present = brw->ff_gs.prog_active || brw->geometry_program;
/* CACHE_NEW_VS_PROG */
/* BRW_NEW_VS_PROG_DATA */
unsigned vs_size = MAX2(brw->vs.prog_data->base.urb_entry_size, 1);
/* Whe using GS to do transform feedback only we use the same VUE layout for
@ -129,9 +129,9 @@ const struct brw_tracked_state gen6_urb = {
.mesa = 0,
.brw = BRW_NEW_CONTEXT |
BRW_NEW_GEOMETRY_PROGRAM,
.cache = CACHE_NEW_GS_PROG |
CACHE_NEW_VS_PROG |
CACHE_NEW_FF_GS_PROG,
.cache = BRW_NEW_GS_PROG_DATA |
BRW_NEW_VS_PROG_DATA |
BRW_NEW_FF_GS_PROG_DATA,
},
.emit = gen6_upload_urb,
};

View file

@ -130,7 +130,7 @@ gen6_upload_vs_push_constants(struct brw_context *brw)
/* _BRW_NEW_VERTEX_PROGRAM */
const struct brw_vertex_program *vp =
brw_vertex_program_const(brw->vertex_program);
/* CACHE_NEW_VS_PROG */
/* BRW_NEW_VS_PROG_DATA */
const struct brw_stage_prog_data *prog_data = &brw->vs.prog_data->base.base;
gen6_upload_push_constants(brw, &vp->program.Base, prog_data,
@ -152,7 +152,7 @@ const struct brw_tracked_state gen6_vs_push_constants = {
.brw = BRW_NEW_BATCH |
BRW_NEW_PUSH_CONSTANT_ALLOCATION |
BRW_NEW_VERTEX_PROGRAM,
.cache = CACHE_NEW_VS_PROG,
.cache = BRW_NEW_VS_PROG_DATA,
},
.emit = gen6_upload_vs_push_constants,
};
@ -266,7 +266,7 @@ const struct brw_tracked_state gen6_vs_state = {
BRW_NEW_CONTEXT |
BRW_NEW_PUSH_CONSTANT_ALLOCATION |
BRW_NEW_VERTEX_PROGRAM,
.cache = CACHE_NEW_VS_PROG
.cache = BRW_NEW_VS_PROG_DATA
},
.emit = upload_vs_state,
};

View file

@ -42,7 +42,7 @@ gen6_upload_wm_push_constants(struct brw_context *brw)
/* BRW_NEW_FRAGMENT_PROGRAM */
const struct brw_fragment_program *fp =
brw_fragment_program_const(brw->fragment_program);
/* CACHE_NEW_WM_PROG */
/* BRW_NEW_FS_PROG_DATA */
const struct brw_wm_prog_data *prog_data = brw->wm.prog_data;
gen6_upload_push_constants(brw, &fp->program.Base, &prog_data->base,
@ -60,7 +60,7 @@ const struct brw_tracked_state gen6_wm_push_constants = {
.brw = BRW_NEW_BATCH |
BRW_NEW_FRAGMENT_PROGRAM |
BRW_NEW_PUSH_CONSTANT_ALLOCATION,
.cache = CACHE_NEW_WM_PROG,
.cache = BRW_NEW_FS_PROG_DATA,
},
.emit = gen6_upload_wm_push_constants,
};
@ -72,7 +72,7 @@ upload_wm_state(struct brw_context *brw)
/* BRW_NEW_FRAGMENT_PROGRAM */
const struct brw_fragment_program *fp =
brw_fragment_program_const(brw->fragment_program);
/* CACHE_NEW_WM_PROG */
/* BRW_NEW_FS_PROG_DATA */
const struct brw_wm_prog_data *prog_data = brw->wm.prog_data;
uint32_t dw2, dw4, dw5, dw6, ksp0, ksp2;
@ -164,7 +164,7 @@ upload_wm_state(struct brw_context *brw)
ksp0 = brw->wm.base.prog_offset;
}
/* CACHE_NEW_WM_PROG | _NEW_COLOR */
/* BRW_NEW_FS_PROG_DATA | _NEW_COLOR */
if (prog_data->dual_src_blend &&
(ctx->Color.BlendEnabled & 1) &&
ctx->Color.Blend[0]._UsesDualSrc) {
@ -306,7 +306,7 @@ const struct brw_tracked_state gen6_wm_state = {
.brw = BRW_NEW_BATCH |
BRW_NEW_FRAGMENT_PROGRAM |
BRW_NEW_PUSH_CONSTANT_ALLOCATION,
.cache = CACHE_NEW_WM_PROG
.cache = BRW_NEW_FS_PROG_DATA
},
.emit = upload_wm_state,
};

View file

@ -34,7 +34,7 @@ upload_gs_state(struct brw_context *brw)
HSW_GS_MAX_THREADS_SHIFT : GEN6_GS_MAX_THREADS_SHIFT;
/* BRW_NEW_GEOMETRY_PROGRAM */
bool active = brw->geometry_program;
/* CACHE_NEW_GS_PROG */
/* BRW_NEW_GS_PROG_DATA */
const struct brw_vec4_prog_data *prog_data = &brw->gs.prog_data->base;
/**
@ -157,7 +157,7 @@ const struct brw_tracked_state gen7_gs_state = {
.brw = BRW_NEW_BATCH |
BRW_NEW_CONTEXT |
BRW_NEW_GEOMETRY_PROGRAM,
.cache = CACHE_NEW_GS_PROG
.cache = BRW_NEW_GS_PROG_DATA
},
.emit = upload_gs_state,
};

View file

@ -33,7 +33,7 @@ static void
upload_sbe_state(struct brw_context *brw)
{
struct gl_context *ctx = &brw->ctx;
/* CACHE_NEW_WM_PROG */
/* BRW_NEW_FS_PROG_DATA */
uint32_t num_outputs = brw->wm.prog_data->num_varying_inputs;
uint32_t dw1;
uint32_t point_sprite_enables;
@ -61,7 +61,7 @@ upload_sbe_state(struct brw_context *brw)
dw1 |= point_sprite_origin;
/* BRW_NEW_VUE_MAP_GEOM_OUT | BRW_NEW_FRAGMENT_PROGRAM
* _NEW_POINT | _NEW_LIGHT | _NEW_PROGRAM | CACHE_NEW_WM_PROG
* _NEW_POINT | _NEW_LIGHT | _NEW_PROGRAM | BRW_NEW_FS_PROG_DATA
*/
uint32_t urb_entry_read_length;
calculate_attr_overrides(brw, attr_overrides, &point_sprite_enables,
@ -96,7 +96,7 @@ const struct brw_tracked_state gen7_sbe_state = {
BRW_NEW_GEOMETRY_PROGRAM |
BRW_NEW_PRIMITIVE |
BRW_NEW_VUE_MAP_GEOM_OUT,
.cache = CACHE_NEW_WM_PROG
.cache = BRW_NEW_FS_PROG_DATA
},
.emit = upload_sbe_state,
};

View file

@ -142,10 +142,10 @@ gen7_upload_urb(struct brw_context *brw)
const int push_size_kB =
(brw->gen >= 8 || (brw->is_haswell && brw->gt == 3)) ? 32 : 16;
/* CACHE_NEW_VS_PROG */
/* BRW_NEW_VS_PROG_DATA */
unsigned vs_size = MAX2(brw->vs.prog_data->base.urb_entry_size, 1);
unsigned vs_entry_size_bytes = vs_size * 64;
/* BRW_NEW_GEOMETRY_PROGRAM, CACHE_NEW_GS_PROG */
/* BRW_NEW_GEOMETRY_PROGRAM, BRW_NEW_GS_PROG_DATA */
bool gs_present = brw->geometry_program;
unsigned gs_size = gs_present ? brw->gs.prog_data->base.urb_entry_size : 1;
unsigned gs_entry_size_bytes = gs_size * 64;
@ -316,8 +316,8 @@ const struct brw_tracked_state gen7_urb = {
.mesa = 0,
.brw = BRW_NEW_CONTEXT |
BRW_NEW_GEOMETRY_PROGRAM,
.cache = CACHE_NEW_VS_PROG |
CACHE_NEW_GS_PROG,
.cache = BRW_NEW_VS_PROG_DATA |
BRW_NEW_GS_PROG_DATA,
},
.emit = gen7_upload_urb,
};

View file

@ -115,7 +115,7 @@ const struct brw_tracked_state gen7_vs_state = {
.brw = BRW_NEW_BATCH |
BRW_NEW_CONTEXT |
BRW_NEW_VERTEX_PROGRAM,
.cache = CACHE_NEW_VS_PROG
.cache = BRW_NEW_VS_PROG_DATA
},
.emit = upload_vs_state,
};

View file

@ -39,7 +39,7 @@ upload_wm_state(struct brw_context *brw)
/* BRW_NEW_FRAGMENT_PROGRAM */
const struct brw_fragment_program *fp =
brw_fragment_program_const(brw->fragment_program);
/* CACHE_NEW_WM_PROG */
/* BRW_NEW_FS_PROG_DATA */
const struct brw_wm_prog_data *prog_data = brw->wm.prog_data;
bool writes_depth = false;
uint32_t dw1, dw2;
@ -133,7 +133,7 @@ const struct brw_tracked_state gen7_wm_state = {
_NEW_POLYGON,
.brw = BRW_NEW_BATCH |
BRW_NEW_FRAGMENT_PROGRAM,
.cache = CACHE_NEW_WM_PROG,
.cache = BRW_NEW_FS_PROG_DATA,
},
.emit = upload_wm_state,
};
@ -146,7 +146,7 @@ upload_ps_state(struct brw_context *brw)
const int max_threads_shift = brw->is_haswell ?
HSW_PS_MAX_THREADS_SHIFT : IVB_PS_MAX_THREADS_SHIFT;
/* CACHE_NEW_WM_PROG */
/* BRW_NEW_FS_PROG_DATA */
const struct brw_wm_prog_data *prog_data = brw->wm.prog_data;
dw2 = dw4 = dw5 = ksp2 = 0;
@ -203,7 +203,7 @@ upload_ps_state(struct brw_context *brw)
else
dw4 |= GEN7_PS_POSOFFSET_NONE;
/* CACHE_NEW_WM_PROG | _NEW_COLOR
/* BRW_NEW_FS_PROG_DATA | _NEW_COLOR
*
* The hardware wedges if you have this bit set but don't turn on any dual
* source blend factors.
@ -214,7 +214,7 @@ upload_ps_state(struct brw_context *brw)
dw4 |= GEN7_PS_DUAL_SOURCE_BLEND_ENABLE;
}
/* CACHE_NEW_WM_PROG */
/* BRW_NEW_FS_PROG_DATA */
if (prog_data->num_varying_inputs != 0)
dw4 |= GEN7_PS_ATTRIBUTE_ENABLE;
@ -277,7 +277,7 @@ const struct brw_tracked_state gen7_ps_state = {
_NEW_MULTISAMPLE,
.brw = BRW_NEW_BATCH |
BRW_NEW_FRAGMENT_PROGRAM,
.cache = CACHE_NEW_WM_PROG
.cache = BRW_NEW_FS_PROG_DATA
},
.emit = upload_ps_state,
};

View file

@ -286,8 +286,8 @@ pma_fix_enable(const struct brw_context *brw)
(fp->Base.OutputsWritten & BITFIELD64_BIT(FRAG_RESULT_DEPTH)) &&
fp->FragDepthLayout != FRAG_DEPTH_LAYOUT_UNCHANGED;
/* CACHE_NEW_WM_PROG: 3DSTATE_PS_EXTRA::PixelShaderKillsPixels
* CACHE_NEW_WM_PROG: 3DSTATE_PS_EXTRA::oMask Present to RenderTarget
/* BRW_NEW_FS_PROG_DATA: 3DSTATE_PS_EXTRA::PixelShaderKillsPixels
* BRW_NEW_FS_PROG_DATA: 3DSTATE_PS_EXTRA::oMask Present to RenderTarget
* _NEW_MULTISAMPLE: 3DSTATE_PS_BLEND::AlphaToCoverageEnable
* _NEW_COLOR: 3DSTATE_PS_BLEND::AlphaTestEnable
*
@ -373,7 +373,7 @@ const struct brw_tracked_state gen8_pma_fix = {
_NEW_MULTISAMPLE |
_NEW_STENCIL,
.brw = BRW_NEW_FRAGMENT_PROGRAM,
.cache = CACHE_NEW_WM_PROG,
.cache = BRW_NEW_FS_PROG_DATA,
},
.emit = gen8_emit_pma_stall_workaround
};

View file

@ -235,7 +235,7 @@ const struct brw_tracked_state gen8_vertices = {
.mesa = _NEW_POLYGON,
.brw = BRW_NEW_BATCH |
BRW_NEW_VERTICES,
.cache = CACHE_NEW_VS_PROG,
.cache = BRW_NEW_VS_PROG_DATA,
},
.emit = gen8_emit_vertices,
};

View file

@ -33,7 +33,7 @@ gen8_upload_gs_state(struct brw_context *brw)
const struct brw_stage_state *stage_state = &brw->gs.base;
/* BRW_NEW_GEOMETRY_PROGRAM */
bool active = brw->geometry_program;
/* CACHE_NEW_GS_PROG */
/* BRW_NEW_GS_PROG_DATA */
const struct brw_vec4_prog_data *prog_data = &brw->gs.prog_data->base;
if (active) {
@ -123,7 +123,7 @@ const struct brw_tracked_state gen8_gs_state = {
.brw = BRW_NEW_BATCH |
BRW_NEW_CONTEXT |
BRW_NEW_GEOMETRY_PROGRAM,
.cache = CACHE_NEW_GS_PROG
.cache = BRW_NEW_GS_PROG_DATA
},
.emit = gen8_upload_gs_state,
};

View file

@ -34,7 +34,7 @@ upload_ps_extra(struct brw_context *brw)
/* BRW_NEW_FRAGMENT_PROGRAM */
const struct brw_fragment_program *fp =
brw_fragment_program_const(brw->fragment_program);
/* CACHE_NEW_WM_PROG */
/* BRW_NEW_FS_PROG_DATA */
const struct brw_wm_prog_data *prog_data = brw->wm.prog_data;
uint32_t dw1 = 0;
@ -90,7 +90,7 @@ const struct brw_tracked_state gen8_ps_extra = {
.brw = BRW_NEW_CONTEXT |
BRW_NEW_FRAGMENT_PROGRAM |
BRW_NEW_NUM_SAMPLES,
.cache = CACHE_NEW_WM_PROG,
.cache = BRW_NEW_FS_PROG_DATA,
},
.emit = upload_ps_extra,
};
@ -114,7 +114,7 @@ upload_wm_state(struct brw_context *brw)
if (ctx->Polygon.StippleFlag)
dw1 |= GEN7_WM_POLYGON_STIPPLE_ENABLE;
/* CACHE_NEW_WM_PROG */
/* BRW_NEW_FS_PROG_DATA */
dw1 |= brw->wm.prog_data->barycentric_interp_modes <<
GEN7_WM_BARYCENTRIC_INTERPOLATION_MODE_SHIFT;
@ -129,7 +129,7 @@ const struct brw_tracked_state gen8_wm_state = {
.mesa = _NEW_LINE |
_NEW_POLYGON,
.brw = BRW_NEW_CONTEXT,
.cache = CACHE_NEW_WM_PROG,
.cache = BRW_NEW_FS_PROG_DATA,
},
.emit = upload_wm_state,
};
@ -140,7 +140,7 @@ upload_ps_state(struct brw_context *brw)
struct gl_context *ctx = &brw->ctx;
uint32_t dw3 = 0, dw6 = 0, dw7 = 0, ksp0, ksp2 = 0;
/* CACHE_NEW_WM_PROG */
/* BRW_NEW_FS_PROG_DATA */
const struct brw_wm_prog_data *prog_data = brw->wm.prog_data;
/* Initialize the execution mask with VMask. Otherwise, derivatives are
@ -152,7 +152,7 @@ upload_ps_state(struct brw_context *brw)
dw3 |=
(ALIGN(brw->wm.base.sampler_count, 4) / 4) << GEN7_PS_SAMPLER_COUNT_SHIFT;
/* CACHE_NEW_WM_PROG */
/* BRW_NEW_FS_PROG_DATA */
dw3 |=
((prog_data->base.binding_table.size_bytes / 4) <<
GEN7_PS_BINDING_TABLE_ENTRY_COUNT_SHIFT);
@ -253,7 +253,7 @@ const struct brw_tracked_state gen8_ps_state = {
.mesa = _NEW_MULTISAMPLE,
.brw = BRW_NEW_BATCH |
BRW_NEW_FRAGMENT_PROGRAM,
.cache = CACHE_NEW_WM_PROG
.cache = BRW_NEW_FS_PROG_DATA
},
.emit = upload_ps_state,
};

View file

@ -33,7 +33,7 @@ static void
upload_sbe(struct brw_context *brw)
{
struct gl_context *ctx = &brw->ctx;
/* CACHE_NEW_WM_PROG */
/* BRW_NEW_FS_PROG_DATA */
uint32_t num_outputs = brw->wm.prog_data->num_varying_inputs;
uint16_t attr_overrides[VARYING_SLOT_MAX];
uint32_t urb_entry_read_length;
@ -61,7 +61,7 @@ upload_sbe(struct brw_context *brw)
dw1 |= GEN6_SF_POINT_SPRITE_UPPERLEFT;
/* BRW_NEW_VUE_MAP_GEOM_OUT | BRW_NEW_FRAGMENT_PROGRAM |
* _NEW_POINT | _NEW_LIGHT | _NEW_PROGRAM | CACHE_NEW_WM_PROG
* _NEW_POINT | _NEW_LIGHT | _NEW_PROGRAM | BRW_NEW_FS_PROG_DATA
*/
calculate_attr_overrides(brw, attr_overrides,
&point_sprite_enables,
@ -134,7 +134,7 @@ const struct brw_tracked_state gen8_sbe_state = {
.brw = BRW_NEW_CONTEXT |
BRW_NEW_FRAGMENT_PROGRAM |
BRW_NEW_VUE_MAP_GEOM_OUT,
.cache = CACHE_NEW_WM_PROG,
.cache = BRW_NEW_FS_PROG_DATA,
},
.emit = upload_sbe,
};

View file

@ -36,7 +36,7 @@ upload_vs_state(struct brw_context *brw)
const struct brw_stage_state *stage_state = &brw->vs.base;
uint32_t floating_point_mode = 0;
/* CACHE_NEW_VS_PROG */
/* BRW_NEW_VS_PROG_DATA */
const struct brw_vec4_prog_data *prog_data = &brw->vs.prog_data->base;
/* Use ALT floating point mode for ARB vertex programs, because they
@ -85,7 +85,7 @@ const struct brw_tracked_state gen8_vs_state = {
.brw = BRW_NEW_BATCH |
BRW_NEW_CONTEXT |
BRW_NEW_VERTEX_PROGRAM,
.cache = CACHE_NEW_VS_PROG
.cache = BRW_NEW_VS_PROG_DATA
},
.emit = upload_vs_state,
};