On Mon, May 01, 2017 at 06:43:04PM -0700, Rafael Antognolli wrote: > From: Kenneth Graunke <kenn...@whitecape.org> > > Make atoms initalization compile conditionally based on the target > platform. > --- > src/mesa/drivers/dri/i965/brw_state.h | 12 +- > src/mesa/drivers/dri/i965/brw_state_upload.c | 385 +------------------- > src/mesa/drivers/dri/i965/genX_state_upload.c | 340 +++++++++++++++++- > 3 files changed, 369 insertions(+), 368 deletions(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_state.h > b/src/mesa/drivers/dri/i965/brw_state.h > index ec79a4e..008326a 100644 > --- a/src/mesa/drivers/dri/i965/brw_state.h > +++ b/src/mesa/drivers/dri/i965/brw_state.h > @@ -441,6 +441,18 @@ void brw_calculate_guardband_size(const struct > gen_device_info *devinfo, > float *xmin, float *xmax, > float *ymin, float *ymax); > > +void brw_copy_pipeline_atoms(struct brw_context *brw, > + enum brw_pipeline pipeline, > + const struct brw_tracked_state **atoms, > + int num_atoms); > +void gen4_init_atoms(struct brw_context *brw); > +void gen5_init_atoms(struct brw_context *brw); > +void gen6_init_atoms(struct brw_context *brw); > +void gen7_init_atoms(struct brw_context *brw); > +void gen75_init_atoms(struct brw_context *brw); > +void gen8_init_atoms(struct brw_context *brw); > +void gen9_init_atoms(struct brw_context *brw); > + > #ifdef __cplusplus > } > #endif > diff --git a/src/mesa/drivers/dri/i965/brw_state_upload.c > b/src/mesa/drivers/dri/i965/brw_state_upload.c > index 9c0b82c..6c9c748 100644 > --- a/src/mesa/drivers/dri/i965/brw_state_upload.c > +++ b/src/mesa/drivers/dri/i965/brw_state_upload.c > @@ -45,341 +45,6 @@ > #include "brw_cs.h" > #include "main/framebuffer.h" > > -static const struct brw_tracked_state *gen4_atoms[] = > -{ > - /* Once all the programs are done, we know how large urb entry > - * sizes need to be and can decide if we need to change the urb > - * layout. > - */ > - &brw_curbe_offsets, > - &brw_recalculate_urb_fence, > - > - &brw_cc_vp, > - &brw_cc_unit, > - > - /* Surface state setup. Must come before the VS/WM unit. The binding > - * table upload must be last. > - */ > - &brw_vs_pull_constants, > - &brw_wm_pull_constants, > - &brw_renderbuffer_surfaces, > - &brw_renderbuffer_read_surfaces, > - &brw_texture_surfaces, > - &brw_vs_binding_table, > - &brw_wm_binding_table, > - > - &brw_fs_samplers, > - &brw_vs_samplers, > - > - /* These set up state for brw_psp_urb_cbs */ > - &brw_wm_unit, > - &brw_sf_vp, > - &brw_sf_unit, > - &brw_vs_unit, /* always required, enabled or not */ > - &brw_clip_unit, > - &brw_gs_unit, > - > - /* Command packets: > - */ > - &brw_invariant_state, > - > - &brw_binding_table_pointers, > - &brw_blend_constant_color, > - > - &brw_depthbuffer, > - > - &brw_polygon_stipple, > - &brw_polygon_stipple_offset, > - > - &brw_line_stipple, > - > - &brw_psp_urb_cbs, > - > - &brw_drawing_rect, > - &brw_indices, /* must come before brw_vertices */ > - &brw_index_buffer, > - &brw_vertices, > - > - &brw_constant_buffer > -}; > - > -static const struct brw_tracked_state *gen6_atoms[] = > -{ > - &gen6_sf_and_clip_viewports, > - > - /* Command packets: */ > - > - &brw_cc_vp, > - &gen6_viewport_state, /* must do after *_vp stages */ > - > - &gen6_urb, > - &gen6_blend_state, /* must do before cc unit */ > - &gen6_color_calc_state, /* must do before cc unit */ > - &gen6_depth_stencil_state, /* must do before cc unit */ > - > - &gen6_vs_push_constants, /* Before vs_state */ > - &gen6_gs_push_constants, /* Before gs_state */ > - &gen6_wm_push_constants, /* Before wm_state */ > - > - /* Surface state setup. Must come before the VS/WM unit. The binding > - * table upload must be last. > - */ > - &brw_vs_pull_constants, > - &brw_vs_ubo_surfaces, > - &brw_gs_pull_constants, > - &brw_gs_ubo_surfaces, > - &brw_wm_pull_constants, > - &brw_wm_ubo_surfaces, > - &gen6_renderbuffer_surfaces, > - &brw_renderbuffer_read_surfaces, > - &brw_texture_surfaces, > - &gen6_sol_surface, > - &brw_vs_binding_table, > - &gen6_gs_binding_table, > - &brw_wm_binding_table, > - > - &brw_fs_samplers, > - &brw_vs_samplers, > - &brw_gs_samplers, > - &gen6_sampler_state, > - &gen6_multisample_state, > - > - &gen6_vs_state, > - &gen6_gs_state, > - &gen6_clip_state, > - &gen6_sf_state, > - &gen6_wm_state, > - > - &gen6_scissor_state, > - > - &gen6_binding_table_pointers, > - > - &brw_depthbuffer, > - > - &brw_polygon_stipple, > - &brw_polygon_stipple_offset, > - > - &brw_line_stipple, > - > - &brw_drawing_rect, > - > - &brw_indices, /* must come before brw_vertices */ > - &brw_index_buffer, > - &brw_vertices, > -}; > - > -static const struct brw_tracked_state *gen7_render_atoms[] = > -{ > - /* Command packets: */ > - > - &brw_cc_vp, > - &gen7_sf_clip_viewport, > - > - &gen7_l3_state, > - &gen7_push_constant_space, > - &gen7_urb, > - &gen6_blend_state, /* must do before cc unit */ > - &gen6_color_calc_state, /* must do before cc unit */ > - &gen6_depth_stencil_state, /* must do before cc unit */ > - > - &brw_vs_image_surfaces, /* Before vs push/pull constants and binding > table */ > - &brw_tcs_image_surfaces, /* Before tcs push/pull constants and binding > table */ > - &brw_tes_image_surfaces, /* Before tes push/pull constants and binding > table */ > - &brw_gs_image_surfaces, /* Before gs push/pull constants and binding > table */ > - &brw_wm_image_surfaces, /* Before wm push/pull constants and binding > table */ > - > - &gen6_vs_push_constants, /* Before vs_state */ > - &gen7_tcs_push_constants, > - &gen7_tes_push_constants, > - &gen6_gs_push_constants, /* Before gs_state */ > - &gen6_wm_push_constants, /* Before wm_surfaces and constant_buffer */ > - > - /* Surface state setup. Must come before the VS/WM unit. The binding > - * table upload must be last. > - */ > - &brw_vs_pull_constants, > - &brw_vs_ubo_surfaces, > - &brw_vs_abo_surfaces, > - &brw_tcs_pull_constants, > - &brw_tcs_ubo_surfaces, > - &brw_tcs_abo_surfaces, > - &brw_tes_pull_constants, > - &brw_tes_ubo_surfaces, > - &brw_tes_abo_surfaces, > - &brw_gs_pull_constants, > - &brw_gs_ubo_surfaces, > - &brw_gs_abo_surfaces, > - &brw_wm_pull_constants, > - &brw_wm_ubo_surfaces, > - &brw_wm_abo_surfaces, > - &gen6_renderbuffer_surfaces, > - &brw_renderbuffer_read_surfaces, > - &brw_texture_surfaces, > - &brw_vs_binding_table, > - &brw_tcs_binding_table, > - &brw_tes_binding_table, > - &brw_gs_binding_table, > - &brw_wm_binding_table, > - > - &brw_fs_samplers, > - &brw_vs_samplers, > - &brw_tcs_samplers, > - &brw_tes_samplers, > - &brw_gs_samplers, > - &gen6_multisample_state, > - > - &gen7_vs_state, > - &gen7_hs_state, > - &gen7_te_state, > - &gen7_ds_state, > - &gen7_gs_state, > - &gen7_sol_state, > - &gen6_clip_state, > - &gen7_sbe_state, > - &gen7_sf_state, > - &gen7_wm_state, > - &gen7_ps_state, > - > - &gen6_scissor_state, > - > - &gen7_depthbuffer, > - > - &brw_polygon_stipple, > - &brw_polygon_stipple_offset, > - > - &brw_line_stipple, > - > - &brw_drawing_rect, > - > - &brw_indices, /* must come before brw_vertices */ > - &brw_index_buffer, > - &brw_vertices, > - > - &haswell_cut_index, > -}; > - > -static const struct brw_tracked_state *gen7_compute_atoms[] = > -{ > - &gen7_l3_state, > - &brw_cs_image_surfaces, > - &gen7_cs_push_constants, > - &brw_cs_pull_constants, > - &brw_cs_ubo_surfaces, > - &brw_cs_abo_surfaces, > - &brw_cs_texture_surfaces, > - &brw_cs_work_groups_surface, > - &brw_cs_samplers, > - &brw_cs_state, > -}; > - > -static const struct brw_tracked_state *gen8_render_atoms[] = > -{ > - &brw_cc_vp, > - &gen8_sf_clip_viewport, > - > - &gen7_l3_state, > - &gen7_push_constant_space, > - &gen7_urb, > - &gen8_blend_state, > - &gen6_color_calc_state, > - > - &brw_vs_image_surfaces, /* Before vs push/pull constants and binding > table */ > - &brw_tcs_image_surfaces, /* Before tcs push/pull constants and binding > table */ > - &brw_tes_image_surfaces, /* Before tes push/pull constants and binding > table */ > - &brw_gs_image_surfaces, /* Before gs push/pull constants and binding > table */ > - &brw_wm_image_surfaces, /* Before wm push/pull constants and binding > table */ > - > - &gen6_vs_push_constants, /* Before vs_state */ > - &gen7_tcs_push_constants, > - &gen7_tes_push_constants, > - &gen6_gs_push_constants, /* Before gs_state */ > - &gen6_wm_push_constants, /* Before wm_surfaces and constant_buffer */ > - > - /* Surface state setup. Must come before the VS/WM unit. The binding > - * table upload must be last. > - */ > - &brw_vs_pull_constants, > - &brw_vs_ubo_surfaces, > - &brw_vs_abo_surfaces, > - &brw_tcs_pull_constants, > - &brw_tcs_ubo_surfaces, > - &brw_tcs_abo_surfaces, > - &brw_tes_pull_constants, > - &brw_tes_ubo_surfaces, > - &brw_tes_abo_surfaces, > - &brw_gs_pull_constants, > - &brw_gs_ubo_surfaces, > - &brw_gs_abo_surfaces, > - &brw_wm_pull_constants, > - &brw_wm_ubo_surfaces, > - &brw_wm_abo_surfaces, > - &gen6_renderbuffer_surfaces, > - &brw_renderbuffer_read_surfaces, > - &brw_texture_surfaces, > - &brw_vs_binding_table, > - &brw_tcs_binding_table, > - &brw_tes_binding_table, > - &brw_gs_binding_table, > - &brw_wm_binding_table, > - > - &brw_fs_samplers, > - &brw_vs_samplers, > - &brw_tcs_samplers, > - &brw_tes_samplers, > - &brw_gs_samplers, > - &gen8_multisample_state, > - > - &gen8_vs_state, > - &gen8_hs_state, > - &gen7_te_state, > - &gen8_ds_state, > - &gen8_gs_state, > - &gen7_sol_state, > - &gen6_clip_state, > - &gen8_raster_state, > - &gen8_sbe_state, > - &gen8_sf_state, > - &gen8_ps_blend, > - &gen8_ps_extra, > - &gen8_ps_state, > - &gen8_wm_depth_stencil, > - &gen8_wm_state, > - > - &gen6_scissor_state, > - > - &gen7_depthbuffer, > - > - &brw_polygon_stipple, > - &brw_polygon_stipple_offset, > - > - &brw_line_stipple, > - > - &brw_drawing_rect, > - > - &gen8_vf_topology, > - > - &brw_indices, > - &gen8_index_buffer, > - &gen8_vertices, > - > - &haswell_cut_index, > - &gen8_pma_fix, > -}; > - > -static const struct brw_tracked_state *gen8_compute_atoms[] = > -{ > - &gen7_l3_state, > - &brw_cs_image_surfaces, > - &gen7_cs_push_constants, > - &brw_cs_pull_constants, > - &brw_cs_ubo_surfaces, > - &brw_cs_abo_surfaces, > - &brw_cs_texture_surfaces, > - &brw_cs_work_groups_surface, > - &brw_cs_samplers, > - &brw_cs_state, > -}; > - > static void > brw_upload_initial_gpu_state(struct brw_context *brw) > { > @@ -439,7 +104,7 @@ brw_get_pipeline_atoms(struct brw_context *brw, > } > } > > -static void > +void > brw_copy_pipeline_atoms(struct brw_context *brw, > enum brw_pipeline pipeline, > const struct brw_tracked_state **atoms, > @@ -467,40 +132,24 @@ void brw_init_state( struct brw_context *brw ) > /* Force the first brw_select_pipeline to emit pipeline select */ > brw->last_pipeline = BRW_NUM_PIPELINES; > > - STATIC_ASSERT(ARRAY_SIZE(gen4_atoms) <= ARRAY_SIZE(brw->render_atoms)); > - STATIC_ASSERT(ARRAY_SIZE(gen6_atoms) <= ARRAY_SIZE(brw->render_atoms)); > - STATIC_ASSERT(ARRAY_SIZE(gen7_render_atoms) <= > - ARRAY_SIZE(brw->render_atoms)); > - STATIC_ASSERT(ARRAY_SIZE(gen8_render_atoms) <= > - ARRAY_SIZE(brw->render_atoms)); > - STATIC_ASSERT(ARRAY_SIZE(gen7_compute_atoms) <= > - ARRAY_SIZE(brw->compute_atoms)); > - STATIC_ASSERT(ARRAY_SIZE(gen8_compute_atoms) <= > - ARRAY_SIZE(brw->compute_atoms)); > - > brw_init_caches(brw); > > - if (brw->gen >= 8) { > - brw_copy_pipeline_atoms(brw, BRW_RENDER_PIPELINE, > - gen8_render_atoms, > - ARRAY_SIZE(gen8_render_atoms)); > - brw_copy_pipeline_atoms(brw, BRW_COMPUTE_PIPELINE, > - gen8_compute_atoms, > - ARRAY_SIZE(gen8_compute_atoms)); > - } else if (brw->gen == 7) { > - brw_copy_pipeline_atoms(brw, BRW_RENDER_PIPELINE, > - gen7_render_atoms, > - ARRAY_SIZE(gen7_render_atoms)); > - brw_copy_pipeline_atoms(brw, BRW_COMPUTE_PIPELINE, > - gen7_compute_atoms, > - ARRAY_SIZE(gen7_compute_atoms)); > - } else if (brw->gen == 6) { > - brw_copy_pipeline_atoms(brw, BRW_RENDER_PIPELINE, > - gen6_atoms, ARRAY_SIZE(gen6_atoms)); > - } else { > - brw_copy_pipeline_atoms(brw, BRW_RENDER_PIPELINE, > - gen4_atoms, ARRAY_SIZE(gen4_atoms)); > - } > + if (brw->gen >= 9) > + gen9_init_atoms(brw); > + else if (brw->gen >= 8) > + gen8_init_atoms(brw); > + else if (brw->is_haswell) > + gen75_init_atoms(brw); > + else if (brw->gen >= 7) > + gen7_init_atoms(brw); > + else if (brw->gen >= 6) > + gen6_init_atoms(brw); > + else if (brw->gen >= 5) > + gen5_init_atoms(brw); > + else if (brw->is_g4x) > + gen45_init_atoms(brw); > + else > + gen4_init_atoms(brw); > > brw_upload_initial_gpu_state(brw); > > diff --git a/src/mesa/drivers/dri/i965/genX_state_upload.c > b/src/mesa/drivers/dri/i965/genX_state_upload.c > index ec571d5..b0487f9 100644 > --- a/src/mesa/drivers/dri/i965/genX_state_upload.c > +++ b/src/mesa/drivers/dri/i965/genX_state_upload.c > @@ -107,3 +107,343 @@ __gen_combine_address(struct brw_context *brw, void > *location, > _dst = NULL) > > /* ---------------------------------------------------------------------- */ > + > + > +/* ---------------------------------------------------------------------- */ > + > +void > +genX(init_atoms)(struct brw_context *brw) > +{ > +#if GEN_GEN < 6 > + static const struct brw_tracked_state *render_atoms[] = > + {
Given that the assert and the dispatch of copy in the end is common code and expects all the if-else blocks to agree on the name "render_atoms", we could have that outside the if-else ladder as well. Just a thought, either way: Reviewed-by: Topi Pohjolainen <topi.pohjolai...@intel.com> > + /* Once all the programs are done, we know how large urb entry > + * sizes need to be and can decide if we need to change the urb > + * layout. > + */ > + &brw_curbe_offsets, > + &brw_recalculate_urb_fence, > + > + &brw_cc_vp, > + &brw_cc_unit, > + > + /* Surface state setup. Must come before the VS/WM unit. The binding > + * table upload must be last. > + */ > + &brw_vs_pull_constants, > + &brw_wm_pull_constants, > + &brw_renderbuffer_surfaces, > + &brw_renderbuffer_read_surfaces, > + &brw_texture_surfaces, > + &brw_vs_binding_table, > + &brw_wm_binding_table, > + > + &brw_fs_samplers, > + &brw_vs_samplers, > + > + /* These set up state for brw_psp_urb_cbs */ > + &brw_wm_unit, > + &brw_sf_vp, > + &brw_sf_unit, > + &brw_vs_unit, /* always required, enabled or not */ > + &brw_clip_unit, > + &brw_gs_unit, > + > + /* Command packets: > + */ > + &brw_invariant_state, > + > + &brw_binding_table_pointers, > + &brw_blend_constant_color, > + > + &brw_depthbuffer, > + > + &brw_polygon_stipple, > + &brw_polygon_stipple_offset, > + > + &brw_line_stipple, > + > + &brw_psp_urb_cbs, > + > + &brw_drawing_rect, > + &brw_indices, /* must come before brw_vertices */ > + &brw_index_buffer, > + &brw_vertices, > + > + &brw_constant_buffer > + }; > +#elif GEN_GEN == 6 > + static const struct brw_tracked_state *render_atoms[] = > + { > + &gen6_sf_and_clip_viewports, > + > + /* Command packets: */ > + > + &brw_cc_vp, > + &gen6_viewport_state, /* must do after *_vp stages */ > + > + &gen6_urb, > + &gen6_blend_state, /* must do before cc unit */ > + &gen6_color_calc_state, /* must do before cc unit */ > + &gen6_depth_stencil_state, /* must do before cc unit */ > + > + &gen6_vs_push_constants, /* Before vs_state */ > + &gen6_gs_push_constants, /* Before gs_state */ > + &gen6_wm_push_constants, /* Before wm_state */ > + > + /* Surface state setup. Must come before the VS/WM unit. The binding > + * table upload must be last. > + */ > + &brw_vs_pull_constants, > + &brw_vs_ubo_surfaces, > + &brw_gs_pull_constants, > + &brw_gs_ubo_surfaces, > + &brw_wm_pull_constants, > + &brw_wm_ubo_surfaces, > + &gen6_renderbuffer_surfaces, > + &brw_renderbuffer_read_surfaces, > + &brw_texture_surfaces, > + &gen6_sol_surface, > + &brw_vs_binding_table, > + &gen6_gs_binding_table, > + &brw_wm_binding_table, > + > + &brw_fs_samplers, > + &brw_vs_samplers, > + &brw_gs_samplers, > + &gen6_sampler_state, > + &gen6_multisample_state, > + > + &gen6_vs_state, > + &gen6_gs_state, > + &gen6_clip_state, > + &gen6_sf_state, > + &gen6_wm_state, > + > + &gen6_scissor_state, > + > + &gen6_binding_table_pointers, > + > + &brw_depthbuffer, > + > + &brw_polygon_stipple, > + &brw_polygon_stipple_offset, > + > + &brw_line_stipple, > + > + &brw_drawing_rect, > + > + &brw_indices, /* must come before brw_vertices */ > + &brw_index_buffer, > + &brw_vertices, > + }; > +#elif GEN_GEN == 7 > + static const struct brw_tracked_state *render_atoms[] = > + { > + /* Command packets: */ > + > + &brw_cc_vp, > + &gen7_sf_clip_viewport, > + > + &gen7_l3_state, > + &gen7_push_constant_space, > + &gen7_urb, > + &gen6_blend_state, /* must do before cc unit */ > + &gen6_color_calc_state, /* must do before cc unit */ > + &gen6_depth_stencil_state, /* must do before cc unit */ > + > + &brw_vs_image_surfaces, /* Before vs push/pull constants and binding > table */ > + &brw_tcs_image_surfaces, /* Before tcs push/pull constants and binding > table */ > + &brw_tes_image_surfaces, /* Before tes push/pull constants and binding > table */ > + &brw_gs_image_surfaces, /* Before gs push/pull constants and binding > table */ > + &brw_wm_image_surfaces, /* Before wm push/pull constants and binding > table */ > + > + &gen6_vs_push_constants, /* Before vs_state */ > + &gen7_tcs_push_constants, > + &gen7_tes_push_constants, > + &gen6_gs_push_constants, /* Before gs_state */ > + &gen6_wm_push_constants, /* Before wm_surfaces and constant_buffer */ > + > + /* Surface state setup. Must come before the VS/WM unit. The binding > + * table upload must be last. > + */ > + &brw_vs_pull_constants, > + &brw_vs_ubo_surfaces, > + &brw_vs_abo_surfaces, > + &brw_tcs_pull_constants, > + &brw_tcs_ubo_surfaces, > + &brw_tcs_abo_surfaces, > + &brw_tes_pull_constants, > + &brw_tes_ubo_surfaces, > + &brw_tes_abo_surfaces, > + &brw_gs_pull_constants, > + &brw_gs_ubo_surfaces, > + &brw_gs_abo_surfaces, > + &brw_wm_pull_constants, > + &brw_wm_ubo_surfaces, > + &brw_wm_abo_surfaces, > + &gen6_renderbuffer_surfaces, > + &brw_renderbuffer_read_surfaces, > + &brw_texture_surfaces, > + &brw_vs_binding_table, > + &brw_tcs_binding_table, > + &brw_tes_binding_table, > + &brw_gs_binding_table, > + &brw_wm_binding_table, > + > + &brw_fs_samplers, > + &brw_vs_samplers, > + &brw_tcs_samplers, > + &brw_tes_samplers, > + &brw_gs_samplers, > + &gen6_multisample_state, > + > + &gen7_vs_state, > + &gen7_hs_state, > + &gen7_te_state, > + &gen7_ds_state, > + &gen7_gs_state, > + &gen7_sol_state, > + &gen6_clip_state, > + &gen7_sbe_state, > + &gen7_sf_state, > + &gen7_wm_state, > + &gen7_ps_state, > + > + &gen6_scissor_state, > + > + &gen7_depthbuffer, > + > + &brw_polygon_stipple, > + &brw_polygon_stipple_offset, > + > + &brw_line_stipple, > + > + &brw_drawing_rect, > + > + &brw_indices, /* must come before brw_vertices */ > + &brw_index_buffer, > + &brw_vertices, > + > + &haswell_cut_index, > + }; > +#elif GEN_GEN >= 8 > + static const struct brw_tracked_state *render_atoms[] = > + { > + &brw_cc_vp, > + &gen8_sf_clip_viewport, > + > + &gen7_l3_state, > + &gen7_push_constant_space, > + &gen7_urb, > + &gen8_blend_state, > + &gen6_color_calc_state, > + > + &brw_vs_image_surfaces, /* Before vs push/pull constants and binding > table */ > + &brw_tcs_image_surfaces, /* Before tcs push/pull constants and binding > table */ > + &brw_tes_image_surfaces, /* Before tes push/pull constants and binding > table */ > + &brw_gs_image_surfaces, /* Before gs push/pull constants and binding > table */ > + &brw_wm_image_surfaces, /* Before wm push/pull constants and binding > table */ > + > + &gen6_vs_push_constants, /* Before vs_state */ > + &gen7_tcs_push_constants, > + &gen7_tes_push_constants, > + &gen6_gs_push_constants, /* Before gs_state */ > + &gen6_wm_push_constants, /* Before wm_surfaces and constant_buffer */ > + > + /* Surface state setup. Must come before the VS/WM unit. The binding > + * table upload must be last. > + */ > + &brw_vs_pull_constants, > + &brw_vs_ubo_surfaces, > + &brw_vs_abo_surfaces, > + &brw_tcs_pull_constants, > + &brw_tcs_ubo_surfaces, > + &brw_tcs_abo_surfaces, > + &brw_tes_pull_constants, > + &brw_tes_ubo_surfaces, > + &brw_tes_abo_surfaces, > + &brw_gs_pull_constants, > + &brw_gs_ubo_surfaces, > + &brw_gs_abo_surfaces, > + &brw_wm_pull_constants, > + &brw_wm_ubo_surfaces, > + &brw_wm_abo_surfaces, > + &gen6_renderbuffer_surfaces, > + &brw_renderbuffer_read_surfaces, > + &brw_texture_surfaces, > + &brw_vs_binding_table, > + &brw_tcs_binding_table, > + &brw_tes_binding_table, > + &brw_gs_binding_table, > + &brw_wm_binding_table, > + > + &brw_fs_samplers, > + &brw_vs_samplers, > + &brw_tcs_samplers, > + &brw_tes_samplers, > + &brw_gs_samplers, > + &gen8_multisample_state, > + > + &gen8_vs_state, > + &gen8_hs_state, > + &gen7_te_state, > + &gen8_ds_state, > + &gen8_gs_state, > + &gen7_sol_state, > + &gen6_clip_state, > + &gen8_raster_state, > + &gen8_sbe_state, > + &gen8_sf_state, > + &gen8_ps_blend, > + &gen8_ps_extra, > + &gen8_ps_state, > + &gen8_wm_depth_stencil, > + &gen8_wm_state, > + > + &gen6_scissor_state, > + > + &gen7_depthbuffer, > + > + &brw_polygon_stipple, > + &brw_polygon_stipple_offset, > + > + &brw_line_stipple, > + > + &brw_drawing_rect, > + > + &gen8_vf_topology, > + > + &brw_indices, > + &gen8_index_buffer, > + &gen8_vertices, > + > + &haswell_cut_index, > + &gen8_pma_fix, > + }; > +#endif > + > + STATIC_ASSERT(ARRAY_SIZE(render_atoms) <= ARRAY_SIZE(brw->render_atoms)); > + brw_copy_pipeline_atoms(brw, BRW_RENDER_PIPELINE, > + render_atoms, ARRAY_SIZE(render_atoms)); > + > +#if GEN_GEN >= 7 > + static const struct brw_tracked_state *compute_atoms[] = > + { > + &gen7_l3_state, > + &brw_cs_image_surfaces, > + &gen7_cs_push_constants, > + &brw_cs_pull_constants, > + &brw_cs_ubo_surfaces, > + &brw_cs_abo_surfaces, > + &brw_cs_texture_surfaces, > + &brw_cs_work_groups_surface, > + &brw_cs_samplers, > + &brw_cs_state, > + }; > + > + STATIC_ASSERT(ARRAY_SIZE(compute_atoms) <= > ARRAY_SIZE(brw->compute_atoms)); > + brw_copy_pipeline_atoms(brw, BRW_COMPUTE_PIPELINE, > + compute_atoms, ARRAY_SIZE(compute_atoms)); > +#endif > +} > -- > git-series 0.9.1 > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev