i965/gs: Implement support for geometry shader samplers.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
@@ -69,6 +69,7 @@ extern const struct brw_tracked_state brw_state_base_address;
|
||||
extern const struct brw_tracked_state brw_urb_fence;
|
||||
extern const struct brw_tracked_state brw_vs_prog;
|
||||
extern const struct brw_tracked_state brw_vs_samplers;
|
||||
extern const struct brw_tracked_state brw_gs_samplers;
|
||||
extern const struct brw_tracked_state brw_vs_ubo_surfaces;
|
||||
extern const struct brw_tracked_state brw_gs_ubo_surfaces;
|
||||
extern const struct brw_tracked_state brw_vs_unit;
|
||||
|
||||
@@ -215,6 +215,7 @@ static const struct brw_tracked_state *gen7_atoms[] =
|
||||
|
||||
&brw_fs_samplers,
|
||||
&brw_vs_samplers,
|
||||
&brw_gs_samplers,
|
||||
&gen6_multisample_state,
|
||||
|
||||
&gen7_disable_stages,
|
||||
|
||||
@@ -443,6 +443,34 @@ const struct brw_tracked_state brw_vs_samplers = {
|
||||
};
|
||||
|
||||
|
||||
static void
|
||||
brw_upload_gs_samplers(struct brw_context *brw)
|
||||
{
|
||||
struct brw_stage_state *stage_state = &brw->gs.base;
|
||||
|
||||
/* BRW_NEW_GEOMETRY_PROGRAM */
|
||||
struct gl_program *gs = (struct gl_program *) brw->geometry_program;
|
||||
if (!gs)
|
||||
return;
|
||||
|
||||
brw->vtbl.upload_sampler_state_table(brw, gs,
|
||||
stage_state->sampler_count,
|
||||
&stage_state->sampler_offset,
|
||||
stage_state->sdc_offset);
|
||||
}
|
||||
|
||||
|
||||
const struct brw_tracked_state brw_gs_samplers = {
|
||||
.dirty = {
|
||||
.mesa = _NEW_TEXTURE,
|
||||
.brw = BRW_NEW_BATCH |
|
||||
BRW_NEW_GEOMETRY_PROGRAM,
|
||||
.cache = 0
|
||||
},
|
||||
.emit = brw_upload_gs_samplers,
|
||||
};
|
||||
|
||||
|
||||
void
|
||||
gen4_init_vtable_sampler_functions(struct brw_context *brw)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user