mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-08 17:10:11 +01:00
i965: Upload atomic buffer state for compute shaders
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
5328ffbe79
commit
eeee212e53
4 changed files with 29 additions and 1 deletions
|
|
@ -1447,7 +1447,7 @@ struct brw_context
|
|||
|
||||
int num_atoms[BRW_NUM_PIPELINES];
|
||||
const struct brw_tracked_state render_atoms[57];
|
||||
const struct brw_tracked_state compute_atoms[2];
|
||||
const struct brw_tracked_state compute_atoms[3];
|
||||
|
||||
/* If (INTEL_DEBUG & DEBUG_BATCH) */
|
||||
struct {
|
||||
|
|
|
|||
|
|
@ -84,6 +84,7 @@ extern const struct brw_tracked_state brw_gs_binding_table;
|
|||
extern const struct brw_tracked_state brw_vs_binding_table;
|
||||
extern const struct brw_tracked_state brw_wm_ubo_surfaces;
|
||||
extern const struct brw_tracked_state brw_wm_abo_surfaces;
|
||||
extern const struct brw_tracked_state brw_cs_abo_surfaces;
|
||||
extern const struct brw_tracked_state brw_wm_unit;
|
||||
extern const struct brw_tracked_state brw_interpolation_map;
|
||||
|
||||
|
|
|
|||
|
|
@ -250,6 +250,7 @@ static const struct brw_tracked_state *gen7_render_atoms[] =
|
|||
static const struct brw_tracked_state *gen7_compute_atoms[] =
|
||||
{
|
||||
&brw_state_base_address,
|
||||
&brw_cs_abo_surfaces,
|
||||
&brw_cs_state,
|
||||
};
|
||||
|
||||
|
|
@ -332,6 +333,7 @@ static const struct brw_tracked_state *gen8_render_atoms[] =
|
|||
static const struct brw_tracked_state *gen8_compute_atoms[] =
|
||||
{
|
||||
&gen8_state_base_address,
|
||||
&brw_cs_abo_surfaces,
|
||||
&brw_cs_state,
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -997,6 +997,31 @@ const struct brw_tracked_state brw_wm_abo_surfaces = {
|
|||
.emit = brw_upload_wm_abo_surfaces,
|
||||
};
|
||||
|
||||
static void
|
||||
brw_upload_cs_abo_surfaces(struct brw_context *brw)
|
||||
{
|
||||
struct gl_context *ctx = &brw->ctx;
|
||||
/* _NEW_PROGRAM */
|
||||
struct gl_shader_program *prog =
|
||||
ctx->_Shader->CurrentProgram[MESA_SHADER_COMPUTE];
|
||||
|
||||
if (prog) {
|
||||
/* BRW_NEW_CS_PROG_DATA */
|
||||
brw_upload_abo_surfaces(brw, prog, &brw->cs.base,
|
||||
&brw->cs.prog_data->base);
|
||||
}
|
||||
}
|
||||
|
||||
const struct brw_tracked_state brw_cs_abo_surfaces = {
|
||||
.dirty = {
|
||||
.mesa = _NEW_PROGRAM,
|
||||
.brw = BRW_NEW_ATOMIC_BUFFER |
|
||||
BRW_NEW_BATCH |
|
||||
BRW_NEW_CS_PROG_DATA,
|
||||
},
|
||||
.emit = brw_upload_cs_abo_surfaces,
|
||||
};
|
||||
|
||||
void
|
||||
gen4_init_vtable_surface_functions(struct brw_context *brw)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue