i965/gs: Implement support for geometry shader samplers.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
Paul Berry
2013-08-25 07:36:18 -07:00
parent 89563489ff
commit 4cc692e355
3 changed files with 30 additions and 0 deletions
+1
View File
@@ -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)
{