[Mesa-dev] [PATCH 11/14] i965: Introduce enumeration for atoms

Topi Pohjolainen topi.pohjolainen at intel.com
Thu Feb 25 09:46:16 UTC 2016


Signed-off-by: Topi Pohjolainen <topi.pohjolainen at intel.com>
---
 src/mesa/drivers/dri/i965/brw_atoms.h        | 265 +++++++++++++
 src/mesa/drivers/dri/i965/brw_state_upload.c | 556 ++++++++++++++-------------
 2 files changed, 556 insertions(+), 265 deletions(-)
 create mode 100644 src/mesa/drivers/dri/i965/brw_atoms.h

diff --git a/src/mesa/drivers/dri/i965/brw_atoms.h b/src/mesa/drivers/dri/i965/brw_atoms.h
new file mode 100644
index 0000000..82145f1
--- /dev/null
+++ b/src/mesa/drivers/dri/i965/brw_atoms.h
@@ -0,0 +1,265 @@
+/*
+ * Copyright © 2016 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+#ifndef BRW_ATOMS_H
+#define BRW_ATOMS_H
+
+enum gen4_render_atom {
+   GEN4_ATOM_INTERPOLATION_MAP,
+   GEN4_ATOM_CLIP_PROG,
+   GEN4_ATOM_SF_PROG,
+   GEN4_ATOM_CURBE_OFFSETS,
+   GEN4_ATOM_RECALCULATE_URB_FENCE,
+   GEN4_ATOM_CC_VP,
+   GEN4_ATOM_CC_UNIT,
+   GEN4_ATOM_VS_PULL_CONSTANTS,
+   GEN4_ATOM_WM_PULL_CONSTANTS,
+   GEN4_ATOM_RENDERBUFFER_SURFACES,
+   GEN4_ATOM_TEXTURE_SURFACES,
+   GEN4_ATOM_VS_BINDING_TABLE,
+   GEN4_ATOM_WM_BINDING_TABLE,
+   GEN4_ATOM_FS_SAMPLERS,
+   GEN4_ATOM_VS_SAMPLERS,
+   GEN4_ATOM_WM_UNIT,
+   GEN4_ATOM_SF_VP,
+   GEN4_ATOM_SF_UNIT,
+   GEN4_ATOM_VS_UNIT,
+   GEN4_ATOM_CLIP_UNIT,
+   GEN4_ATOM_GS_UNIT,
+   GEN4_ATOM_INVARIANT_STATE,
+   GEN4_ATOM_STATE_BASE_ADDRESS,
+   GEN4_ATOM_BINDING_TABLE_POINTERS,
+   GEN4_ATOM_BLEND_CONSTANT_COLOR,
+   GEN4_ATOM_DEPTHBUFFER,
+   GEN4_ATOM_POLYGON_STIPPLE,
+   GEN4_ATOM_POLYGON_STIPPLE_OFFSET,
+   GEN4_ATOM_LINE_STIPPLE,
+   GEN4_ATOM_AA_LINE_PARAMETERS,
+   GEN4_ATOM_PSP_URB_CBS,
+   GEN4_ATOM_DRAWING_RECT,
+   GEN4_ATOM_INDICES,
+   GEN4_ATOM_INDEX_BUFFER,
+   GEN4_ATOM_VERTICES,
+   GEN4_ATOM_CONSTANT_BUFFER,
+};
+
+enum gen6_render_atom {
+   GEN6_ATOM_CLIP_VP,
+   GEN6_ATOM_SF_VP,
+   GEN6_ATOM_STATE_BASE_ADDRESS,
+   GEN6_ATOM_CC_VP,
+   GEN6_ATOM_VIEWPORT_STATE,
+   GEN6_ATOM_URB,
+   GEN6_ATOM_BLEND_STATE,
+   GEN6_ATOM_COLOR_CALC_STATE,
+   GEN6_ATOM_DEPTH_STENCIL_STATE,
+   GEN6_ATOM_VS_PUSH_CONSTANTS,
+   GEN6_ATOM_GS_PUSH_CONSTANTS,
+   GEN6_ATOM_WM_PUSH_CONSTANTS,
+   GEN6_ATOM_VS_PULL_CONSTANTS,
+   GEN6_ATOM_VS_UBO_SURFACES,
+   GEN6_ATOM_GS_PULL_CONSTANTS,
+   GEN6_ATOM_GS_UBO_SURFACES,
+   GEN6_ATOM_WM_PULL_CONSTANTS,
+   GEN6_ATOM_WM_UBO_SURFACES,
+   GEN6_ATOM_RENDERBUFFER_SURFACES,
+   GEN6_ATOM_TEXTURE_SURFACES,
+   GEN6_ATOM_SOL_SURFACE,
+   GEN6_ATOM_VS_BINDING_TABLE,
+   GEN6_ATOM_GS_BINDING_TABLE,
+   GEN6_ATOM_WM_BINDING_TABLE,
+   GEN6_ATOM_FS_SAMPLERS,
+   GEN6_ATOM_VS_SAMPLERS,
+   GEN6_ATOM_GS_SAMPLERS,
+   GEN6_ATOM_SAMPLER_STATE,
+   GEN6_ATOM_MULTISAMPLE_STATE,
+   GEN6_ATOM_VS_STATE,
+   GEN6_ATOM_GS_STATE,
+   GEN6_ATOM_CLIP_STATE,
+   GEN6_ATOM_SF_STATE,
+   GEN6_ATOM_WM_STATE,
+   GEN6_ATOM_SCISSOR_STATE,
+   GEN6_ATOM_BINDING_TABLE_POINTERS,
+   GEN6_ATOM_DEPTHBUFFER,
+   GEN6_ATOM_POLYGON_STIPPLE,
+   GEN6_ATOM_POLYGON_STIPPLE_OFFSET,
+   GEN6_ATOM_LINE_STIPPLE,
+   GEN6_ATOM_AA_LINE_PARAMETERS,
+   GEN6_ATOM_DRAWING_RECT,
+   GEN6_ATOM_INDICES,
+   GEN6_ATOM_INDEX_BUFFER,
+   GEN6_ATOM_VERTICES,
+};
+
+enum gen7_render_atom {
+   GEN7_ATOM_STATE_BASE_ADDRESS,
+   GEN7_ATOM_CC_VP,
+   GEN7_ATOM_SF_CLIP_VIEWPORT,
+   GEN7_ATOM_L3_STATE,
+   GEN7_ATOM_PUSH_CONSTANT_SPACE,
+   GEN7_ATOM_URB,
+   GEN7_ATOM_BLEND_STATE,
+   GEN7_ATOM_COLOR_CALC_STATE,
+   GEN7_ATOM_DEPTH_STENCIL_STATE,
+   GEN7_ATOM_HW_BINDING_TABLES,
+   GEN7_ATOM_VS_IMAGE_SURFACES,
+   GEN7_ATOM_TCS_IMAGE_SURFACES,
+   GEN7_ATOM_TES_IMAGE_SURFACES,
+   GEN7_ATOM_GS_IMAGE_SURFACES,
+   GEN7_ATOM_WM_IMAGE_SURFACES,
+   GEN7_ATOM_VS_PUSH_CONSTANTS,
+   GEN7_ATOM_TCS_PUSH_CONSTANTS,
+   GEN7_ATOM_TES_PUSH_CONSTANTS,
+   GEN7_ATOM_GS_PUSH_CONSTANTS,
+   GEN7_ATOM_WM_PUSH_CONSTANTS,
+   GEN7_ATOM_VS_PULL_CONSTANTS,
+   GEN7_ATOM_VS_UBO_SURFACES,
+   GEN7_ATOM_VS_ABO_SURFACES,
+   GEN7_ATOM_TCS_PULL_CONSTANTS,
+   GEN7_ATOM_TCS_UBO_SURFACES,
+   GEN7_ATOM_TCS_ABO_SURFACES,
+   GEN7_ATOM_TES_PULL_CONSTANTS,
+   GEN7_ATOM_TES_UBO_SURFACES,
+   GEN7_ATOM_TES_ABO_SURFACES,
+   GEN7_ATOM_GS_PULL_CONSTANTS,
+   GEN7_ATOM_GS_UBO_SURFACES,
+   GEN7_ATOM_GS_ABO_SURFACES,
+   GEN7_ATOM_WM_PULL_CONSTANTS,
+   GEN7_ATOM_WM_UBO_SURFACES,
+   GEN7_ATOM_WM_ABO_SURFACES,
+   GEN7_ATOM_RENDERBUFFER_SURFACES,
+   GEN7_ATOM_TEXTURE_SURFACES,
+   GEN7_ATOM_VS_BINDING_TABLE,
+   GEN7_ATOM_TCS_BINDING_TABLE,
+   GEN7_ATOM_TES_BINDING_TABLE,
+   GEN7_ATOM_GS_BINDING_TABLE,
+   GEN7_ATOM_WM_BINDING_TABLE,
+   GEN7_ATOM_FS_SAMPLERS,
+   GEN7_ATOM_VS_SAMPLERS,
+   GEN7_ATOM_TCS_SAMPLERS,
+   GEN7_ATOM_TES_SAMPLERS,
+   GEN7_ATOM_GS_SAMPLERS,
+   GEN7_ATOM_MULTISAMPLE_STATE,
+   GEN7_ATOM_VS_STATE,
+   GEN7_ATOM_HS_STATE,
+   GEN7_ATOM_TE_STATE,
+   GEN7_ATOM_DS_STATE,
+   GEN7_ATOM_GS_STATE,
+   GEN7_ATOM_SOL_STATE,
+   GEN7_ATOM_CLIP_STATE,
+   GEN7_ATOM_SBE_STATE,
+   GEN7_ATOM_SF_STATE,
+   GEN7_ATOM_WM_STATE,
+   GEN7_ATOM_PS_STATE,
+   GEN7_ATOM_SCISSOR_STATE,
+   GEN7_ATOM_DEPTHBUFFER,
+   GEN7_ATOM_POLYGON_STIPPLE,
+   GEN7_ATOM_POLYGON_STIPPLE_OFFSET,
+   GEN7_ATOM_LINE_STIPPLE,
+   GEN7_ATOM_AA_LINE_PARAMETERS,
+   GEN7_ATOM_DRAWING_RECT,
+   GEN7_ATOM_INDICES,
+   GEN7_ATOM_INDEX_BUFFER,
+   GEN7_ATOM_VERTICES,
+   GEN7_ATOM_HASWELL_CUT_INDEX,
+};
+
+enum gen8_render_atom {
+   GEN8_ATOM_STATE_BASE_ADDRESS,
+   GEN8_ATOM_CC_VP,
+   GEN8_ATOM_SF_CLIP_VIEWPORT,
+   GEN8_ATOM_L3_STATE,
+   GEN8_ATOM_PUSH_CONSTANT_SPACE,
+   GEN8_ATOM_URB,
+   GEN8_ATOM_BLEND_STATE,
+   GEN8_ATOM_COLOR_CALC_STATE,
+   GEN8_ATOM_HW_BINDING_TABLES,
+   GEN8_ATOM_VS_IMAGE_SURFACES,
+   GEN8_ATOM_TCS_IMAGE_SURFACES,
+   GEN8_ATOM_TES_IMAGE_SURFACES,
+   GEN8_ATOM_GS_IMAGE_SURFACES,
+   GEN8_ATOM_WM_IMAGE_SURFACES,
+   GEN8_ATOM_VS_PUSH_CONSTANTS,
+   GEN8_ATOM_TCS_PUSH_CONSTANTS,
+   GEN8_ATOM_TES_PUSH_CONSTANTS,
+   GEN8_ATOM_GS_PUSH_CONSTANTS,
+   GEN8_ATOM_WM_PUSH_CONSTANTS,
+   GEN8_ATOM_VS_PULL_CONSTANTS,
+   GEN8_ATOM_VS_UBO_SURFACES,
+   GEN8_ATOM_VS_ABO_SURFACES,
+   GEN8_ATOM_TCS_PULL_CONSTANTS,
+   GEN8_ATOM_TCS_UBO_SURFACES,
+   GEN8_ATOM_TCS_ABO_SURFACES,
+   GEN8_ATOM_TES_PULL_CONSTANTS,
+   GEN8_ATOM_TES_UBO_SURFACES,
+   GEN8_ATOM_TES_ABO_SURFACES,
+   GEN8_ATOM_GS_PULL_CONSTANTS,
+   GEN8_ATOM_GS_UBO_SURFACES,
+   GEN8_ATOM_GS_ABO_SURFACES,
+   GEN8_ATOM_WM_PULL_CONSTANTS,
+   GEN8_ATOM_WM_UBO_SURFACES,
+   GEN8_ATOM_WM_ABO_SURFACES,
+   GEN8_ATOM_RENDERBUFFER_SURFACES,
+   GEN8_ATOM_TEXTURE_SURFACES,
+   GEN8_ATOM_VS_BINDING_TABLE,
+   GEN8_ATOM_TCS_BINDING_TABLE,
+   GEN8_ATOM_TES_BINDING_TABLE,
+   GEN8_ATOM_GS_BINDING_TABLE,
+   GEN8_ATOM_WM_BINDING_TABLE,
+   GEN8_ATOM_FS_SAMPLERS,
+   GEN8_ATOM_VS_SAMPLERS,
+   GEN8_ATOM_TCS_SAMPLERS,
+   GEN8_ATOM_TES_SAMPLERS,
+   GEN8_ATOM_GS_SAMPLERS,
+   GEN8_ATOM_MULTISAMPLE_STATE,
+   GEN8_ATOM_DISABLE_STAGES,
+   GEN8_ATOM_VS_STATE,
+   GEN8_ATOM_HS_STATE,
+   GEN8_ATOM_TE_STATE,
+   GEN8_ATOM_DS_STATE,
+   GEN8_ATOM_GS_STATE,
+   GEN8_ATOM_SOL_STATE,
+   GEN8_ATOM_CLIP_STATE,
+   GEN8_ATOM_RASTER_STATE,
+   GEN8_ATOM_SBE_STATE,
+   GEN8_ATOM_SF_STATE,
+   GEN8_ATOM_PS_BLEND,
+   GEN8_ATOM_PS_EXTRA,
+   GEN8_ATOM_PS_STATE,
+   GEN8_ATOM_WM_DEPTH_STENCIL,
+   GEN8_ATOM_WM_STATE,
+   GEN8_ATOM_SCISSOR_STATE,
+   GEN8_ATOM_DEPTHBUFFER,
+   GEN8_ATOM_POLYGON_STIPPLE,
+   GEN8_ATOM_POLYGON_STIPPLE_OFFSET,
+   GEN8_ATOM_LINE_STIPPLE,
+   GEN8_ATOM_AA_LINE_PARAMETERS,
+   GEN8_ATOM_DRAWING_RECT,
+   GEN8_ATOM_VF_TOPOLOGY,
+   GEN8_ATOM_INDICES,
+   GEN8_ATOM_INDEX_BUFFER,
+   GEN8_ATOM_VERTICES,
+   GEN8_ATOM_HASWELL_CUT_INDEX,
+   GEN8_ATOM_PMA_FIX,
+};
+
+#endif
diff --git a/src/mesa/drivers/dri/i965/brw_state_upload.c b/src/mesa/drivers/dri/i965/brw_state_upload.c
index 152f1a4..546c6c5 100644
--- a/src/mesa/drivers/dri/i965/brw_state_upload.c
+++ b/src/mesa/drivers/dri/i965/brw_state_upload.c
@@ -41,139 +41,145 @@
 #include "brw_gs.h"
 #include "brw_wm.h"
 #include "brw_cs.h"
+#include "brw_atoms.h"
 #include "main/framebuffer.h"
 
 static const struct brw_tracked_state *gen4_atoms[] =
 {
-   &brw_interpolation_map,
+   [GEN4_ATOM_INTERPOLATION_MAP] = &brw_interpolation_map,
 
-   &brw_clip_prog, /* must do before state base address */
-   &brw_sf_prog, /* must do before state base address */
+   /* must do before state base address */
+   [GEN4_ATOM_CLIP_PROG] = &brw_clip_prog,
+   [GEN4_ATOM_SF_PROG] = &brw_sf_prog,
 
    /* 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,
+   [GEN4_ATOM_CURBE_OFFSETS] = &brw_curbe_offsets, 
+   [GEN4_ATOM_RECALCULATE_URB_FENCE] = &brw_recalculate_urb_fence, 
 
-   &brw_cc_vp,
-   &brw_cc_unit,
+   [GEN4_ATOM_CC_VP] = &brw_cc_vp, 
+   [GEN4_ATOM_CC_UNIT] = &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_texture_surfaces,
-   &brw_vs_binding_table,
-   &brw_wm_binding_table,
+   [GEN4_ATOM_VS_PULL_CONSTANTS] = &brw_vs_pull_constants, 
+   [GEN4_ATOM_WM_PULL_CONSTANTS] = &brw_wm_pull_constants, 
+   [GEN4_ATOM_RENDERBUFFER_SURFACES] = &brw_renderbuffer_surfaces, 
+   [GEN4_ATOM_TEXTURE_SURFACES] = &brw_texture_surfaces, 
+   [GEN4_ATOM_VS_BINDING_TABLE] = &brw_vs_binding_table, 
+   [GEN4_ATOM_WM_BINDING_TABLE] = &brw_wm_binding_table, 
 
-   &brw_fs_samplers,
-   &brw_vs_samplers,
+   [GEN4_ATOM_FS_SAMPLERS] = &brw_fs_samplers, 
+   [GEN4_ATOM_VS_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,
+   [GEN4_ATOM_WM_UNIT] = &brw_wm_unit, 
+   [GEN4_ATOM_SF_VP] = &brw_sf_vp, 
+   [GEN4_ATOM_SF_UNIT] = &brw_sf_unit, 
+   [GEN4_ATOM_VS_UNIT] = &brw_vs_unit, /* always required enabled or not */
+   [GEN4_ATOM_CLIP_UNIT] = &brw_clip_unit, 
+   [GEN4_ATOM_GS_UNIT] = &brw_gs_unit, 
 
    /* Command packets:
     */
-   &brw_invariant_state,
-   &brw_state_base_address,
+   [GEN4_ATOM_INVARIANT_STATE] = &brw_invariant_state, 
+   [GEN4_ATOM_STATE_BASE_ADDRESS] = &brw_state_base_address, 
 
-   &brw_binding_table_pointers,
-   &brw_blend_constant_color,
+   [GEN4_ATOM_BINDING_TABLE_POINTERS] = &brw_binding_table_pointers, 
+   [GEN4_ATOM_BLEND_CONSTANT_COLOR] = &brw_blend_constant_color, 
 
-   &brw_depthbuffer,
+   [GEN4_ATOM_DEPTHBUFFER] = &brw_depthbuffer, 
 
-   &brw_polygon_stipple,
-   &brw_polygon_stipple_offset,
+   [GEN4_ATOM_POLYGON_STIPPLE] = &brw_polygon_stipple, 
+   [GEN4_ATOM_POLYGON_STIPPLE_OFFSET] = &brw_polygon_stipple_offset, 
 
-   &brw_line_stipple,
-   &brw_aa_line_parameters,
+   [GEN4_ATOM_LINE_STIPPLE] = &brw_line_stipple, 
+   [GEN4_ATOM_AA_LINE_PARAMETERS] = &brw_aa_line_parameters, 
 
-   &brw_psp_urb_cbs,
+   [GEN4_ATOM_PSP_URB_CBS] = &brw_psp_urb_cbs, 
 
-   &brw_drawing_rect,
-   &brw_indices, /* must come before brw_vertices */
-   &brw_index_buffer,
-   &brw_vertices,
+   [GEN4_ATOM_DRAWING_RECT] = &brw_drawing_rect, 
+   [GEN4_ATOM_INDICES] = &brw_indices,  /* must come before brw_vertices */
+   [GEN4_ATOM_INDEX_BUFFER] = &brw_index_buffer, 
+   [GEN4_ATOM_VERTICES] = &brw_vertices, 
 
-   &brw_constant_buffer
+   [GEN4_ATOM_CONSTANT_BUFFER] = &brw_constant_buffer,
 };
 
 static const struct brw_tracked_state *gen6_atoms[] =
 {
-   &gen6_clip_vp,
-   &gen6_sf_vp,
+   [GEN6_ATOM_CLIP_VP] = &gen6_clip_vp, 
+   [GEN6_ATOM_SF_VP] = &gen6_sf_vp, 
 
    /* Command packets: */
 
    /* must do before binding table pointers, cc state ptrs */
-   &brw_state_base_address,
+   [GEN6_ATOM_STATE_BASE_ADDRESS] = &brw_state_base_address, 
 
-   &brw_cc_vp,
-   &gen6_viewport_state,	/* must do after *_vp stages */
+   [GEN6_ATOM_CC_VP] = &brw_cc_vp, 
+   /* must do after *_vp stages */
+   [GEN6_ATOM_VIEWPORT_STATE] = &gen6_viewport_state,
 
-   &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_ATOM_URB] = &gen6_urb, 
 
-   &gen6_vs_push_constants, /* Before vs_state */
-   &gen6_gs_push_constants, /* Before gs_state */
-   &gen6_wm_push_constants, /* Before wm_state */
+   /* must do before cc unit */
+   [GEN6_ATOM_BLEND_STATE] = &gen6_blend_state,
+   [GEN6_ATOM_COLOR_CALC_STATE] = &gen6_color_calc_state,
+   [GEN6_ATOM_DEPTH_STENCIL_STATE] = &gen6_depth_stencil_state,
+
+   /* Before vs_state */
+   [GEN6_ATOM_VS_PUSH_CONSTANTS] = &gen6_vs_push_constants,
+   [GEN6_ATOM_GS_PUSH_CONSTANTS] = &gen6_gs_push_constants,
+   [GEN6_ATOM_WM_PUSH_CONSTANTS] = &gen6_wm_push_constants,
 
    /* 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_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_aa_line_parameters,
-
-   &brw_drawing_rect,
-
-   &brw_indices, /* must come before brw_vertices */
-   &brw_index_buffer,
-   &brw_vertices,
+   [GEN6_ATOM_VS_PULL_CONSTANTS] = &brw_vs_pull_constants, 
+   [GEN6_ATOM_VS_UBO_SURFACES] = &brw_vs_ubo_surfaces, 
+   [GEN6_ATOM_GS_PULL_CONSTANTS] = &brw_gs_pull_constants, 
+   [GEN6_ATOM_GS_UBO_SURFACES] = &brw_gs_ubo_surfaces, 
+   [GEN6_ATOM_WM_PULL_CONSTANTS] = &brw_wm_pull_constants, 
+   [GEN6_ATOM_WM_UBO_SURFACES] = &brw_wm_ubo_surfaces, 
+   [GEN6_ATOM_RENDERBUFFER_SURFACES] = &gen6_renderbuffer_surfaces, 
+   [GEN6_ATOM_TEXTURE_SURFACES] = &brw_texture_surfaces, 
+   [GEN6_ATOM_SOL_SURFACE] = &gen6_sol_surface, 
+   [GEN6_ATOM_VS_BINDING_TABLE] = &brw_vs_binding_table, 
+   [GEN6_ATOM_GS_BINDING_TABLE] = &gen6_gs_binding_table, 
+   [GEN6_ATOM_WM_BINDING_TABLE] = &brw_wm_binding_table, 
+
+   [GEN6_ATOM_FS_SAMPLERS] = &brw_fs_samplers, 
+   [GEN6_ATOM_VS_SAMPLERS] = &brw_vs_samplers, 
+   [GEN6_ATOM_GS_SAMPLERS] = &brw_gs_samplers, 
+   [GEN6_ATOM_SAMPLER_STATE] = &gen6_sampler_state, 
+   [GEN6_ATOM_MULTISAMPLE_STATE] = &gen6_multisample_state, 
+
+   [GEN6_ATOM_VS_STATE] = &gen6_vs_state, 
+   [GEN6_ATOM_GS_STATE] = &gen6_gs_state, 
+   [GEN6_ATOM_CLIP_STATE] = &gen6_clip_state, 
+   [GEN6_ATOM_SF_STATE] = &gen6_sf_state, 
+   [GEN6_ATOM_WM_STATE] = &gen6_wm_state, 
+
+   [GEN6_ATOM_SCISSOR_STATE] = &gen6_scissor_state, 
+
+   [GEN6_ATOM_BINDING_TABLE_POINTERS] = &gen6_binding_table_pointers, 
+
+   [GEN6_ATOM_DEPTHBUFFER] = &brw_depthbuffer, 
+
+   [GEN6_ATOM_POLYGON_STIPPLE] = &brw_polygon_stipple, 
+   [GEN6_ATOM_POLYGON_STIPPLE_OFFSET] = &brw_polygon_stipple_offset, 
+
+   [GEN6_ATOM_LINE_STIPPLE] = &brw_line_stipple, 
+   [GEN6_ATOM_AA_LINE_PARAMETERS] = &brw_aa_line_parameters, 
+
+   [GEN6_ATOM_DRAWING_RECT] = &brw_drawing_rect, 
+
+   [GEN6_ATOM_INDICES] = &brw_indices,  /* must come before brw_vertices */
+   [GEN6_ATOM_INDEX_BUFFER] = &brw_index_buffer, 
+   [GEN6_ATOM_VERTICES] = &brw_vertices, 
 };
 
 static const struct brw_tracked_state *gen7_render_atoms[] =
@@ -181,94 +187,105 @@ static const struct brw_tracked_state *gen7_render_atoms[] =
    /* Command packets: */
 
    /* must do before binding table pointers, cc state ptrs */
-   &brw_state_base_address,
-
-   &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 */
-
-   &gen7_hw_binding_tables, /* Enable hw-generated binding tables for Haswell */
-
-   &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 */
+   [GEN7_ATOM_STATE_BASE_ADDRESS] = &brw_state_base_address, 
+
+   [GEN7_ATOM_CC_VP] = &brw_cc_vp, 
+   [GEN7_ATOM_SF_CLIP_VIEWPORT] = &gen7_sf_clip_viewport, 
+
+   [GEN7_ATOM_L3_STATE] = &gen7_l3_state, 
+   [GEN7_ATOM_PUSH_CONSTANT_SPACE] = &gen7_push_constant_space, 
+   [GEN7_ATOM_URB] = &gen7_urb, 
+
+   /* must do before cc unit */
+   [GEN7_ATOM_BLEND_STATE] = &gen6_blend_state,
+   [GEN7_ATOM_COLOR_CALC_STATE] = &gen6_color_calc_state,
+   [GEN7_ATOM_DEPTH_STENCIL_STATE] = &gen6_depth_stencil_state,
+
+   /* Enable hw-generated binding tables for Haswell */
+   [GEN7_ATOM_HW_BINDING_TABLES] = &gen7_hw_binding_tables,
+
+   /* Before vs push/pull constants and binding table */
+   [GEN7_ATOM_VS_IMAGE_SURFACES] = &brw_vs_image_surfaces,
+   /* Before tcs push/pull constants and binding table */
+   [GEN7_ATOM_TCS_IMAGE_SURFACES] = &brw_tcs_image_surfaces,
+   /* Before tes push/pull constants and binding table */
+   [GEN7_ATOM_TES_IMAGE_SURFACES] = &brw_tes_image_surfaces,
+   /* Before gs push/pull constants and binding table */
+   [GEN7_ATOM_GS_IMAGE_SURFACES] = &brw_gs_image_surfaces,
+   /* Before wm push/pull constants and binding table */
+   [GEN7_ATOM_WM_IMAGE_SURFACES] = &brw_wm_image_surfaces,
+
+   /* Before vs_state */
+   [GEN7_ATOM_VS_PUSH_CONSTANTS] = &gen6_vs_push_constants,
+   [GEN7_ATOM_TCS_PUSH_CONSTANTS] = &gen7_tcs_push_constants, 
+   [GEN7_ATOM_TES_PUSH_CONSTANTS] = &gen7_tes_push_constants, 
+   /* Before gs_state */
+   [GEN7_ATOM_GS_PUSH_CONSTANTS] = &gen6_gs_push_constants,
+   /* Before wm_surfaces and constant_buffer */
+   [GEN7_ATOM_WM_PUSH_CONSTANTS] = &gen6_wm_push_constants,
 
    /* 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_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,
-   &gen7_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_aa_line_parameters,
-
-   &brw_drawing_rect,
-
-   &brw_indices, /* must come before brw_vertices */
-   &brw_index_buffer,
-   &brw_vertices,
-
-   &haswell_cut_index,
+   [GEN7_ATOM_VS_PULL_CONSTANTS] = &brw_vs_pull_constants, 
+   [GEN7_ATOM_VS_UBO_SURFACES] = &brw_vs_ubo_surfaces, 
+   [GEN7_ATOM_VS_ABO_SURFACES] = &brw_vs_abo_surfaces, 
+   [GEN7_ATOM_TCS_PULL_CONSTANTS] = &brw_tcs_pull_constants, 
+   [GEN7_ATOM_TCS_UBO_SURFACES] = &brw_tcs_ubo_surfaces, 
+   [GEN7_ATOM_TCS_ABO_SURFACES] = &brw_tcs_abo_surfaces, 
+   [GEN7_ATOM_TES_PULL_CONSTANTS] = &brw_tes_pull_constants, 
+   [GEN7_ATOM_TES_UBO_SURFACES] = &brw_tes_ubo_surfaces, 
+   [GEN7_ATOM_TES_ABO_SURFACES] = &brw_tes_abo_surfaces, 
+   [GEN7_ATOM_GS_PULL_CONSTANTS] = &brw_gs_pull_constants, 
+   [GEN7_ATOM_GS_UBO_SURFACES] = &brw_gs_ubo_surfaces, 
+   [GEN7_ATOM_GS_ABO_SURFACES] = &brw_gs_abo_surfaces, 
+   [GEN7_ATOM_WM_PULL_CONSTANTS] = &brw_wm_pull_constants, 
+   [GEN7_ATOM_WM_UBO_SURFACES] = &brw_wm_ubo_surfaces, 
+   [GEN7_ATOM_WM_ABO_SURFACES] = &brw_wm_abo_surfaces, 
+   [GEN7_ATOM_RENDERBUFFER_SURFACES] = &gen6_renderbuffer_surfaces, 
+   [GEN7_ATOM_TEXTURE_SURFACES] = &brw_texture_surfaces, 
+   [GEN7_ATOM_VS_BINDING_TABLE] = &brw_vs_binding_table, 
+   [GEN7_ATOM_TCS_BINDING_TABLE] = &brw_tcs_binding_table, 
+   [GEN7_ATOM_TES_BINDING_TABLE] = &brw_tes_binding_table, 
+   [GEN7_ATOM_GS_BINDING_TABLE] = &brw_gs_binding_table, 
+   [GEN7_ATOM_WM_BINDING_TABLE] = &brw_wm_binding_table, 
+
+   [GEN7_ATOM_FS_SAMPLERS] = &brw_fs_samplers, 
+   [GEN7_ATOM_VS_SAMPLERS] = &brw_vs_samplers, 
+   [GEN7_ATOM_TCS_SAMPLERS] = &brw_tcs_samplers, 
+   [GEN7_ATOM_TES_SAMPLERS] = &brw_tes_samplers, 
+   [GEN7_ATOM_GS_SAMPLERS] = &brw_gs_samplers, 
+   [GEN7_ATOM_MULTISAMPLE_STATE] = &gen6_multisample_state, 
+
+   [GEN7_ATOM_VS_STATE] = &gen7_vs_state, 
+   [GEN7_ATOM_HS_STATE] = &gen7_hs_state, 
+   [GEN7_ATOM_TE_STATE] = &gen7_te_state, 
+   [GEN7_ATOM_DS_STATE] = &gen7_ds_state, 
+   [GEN7_ATOM_GS_STATE] = &gen7_gs_state, 
+   [GEN7_ATOM_SOL_STATE] = &gen7_sol_state, 
+   [GEN7_ATOM_CLIP_STATE] = &gen7_clip_state, 
+   [GEN7_ATOM_SBE_STATE] = &gen7_sbe_state, 
+   [GEN7_ATOM_SF_STATE] = &gen7_sf_state, 
+   [GEN7_ATOM_WM_STATE] = &gen7_wm_state, 
+   [GEN7_ATOM_PS_STATE] = &gen7_ps_state, 
+
+   [GEN7_ATOM_SCISSOR_STATE] = &gen6_scissor_state, 
+
+   [GEN7_ATOM_DEPTHBUFFER] = &gen7_depthbuffer, 
+
+   [GEN7_ATOM_POLYGON_STIPPLE] = &brw_polygon_stipple, 
+   [GEN7_ATOM_POLYGON_STIPPLE_OFFSET] = &brw_polygon_stipple_offset, 
+
+   [GEN7_ATOM_LINE_STIPPLE] = &brw_line_stipple, 
+   [GEN7_ATOM_AA_LINE_PARAMETERS] = &brw_aa_line_parameters, 
+
+   [GEN7_ATOM_DRAWING_RECT] = &brw_drawing_rect, 
+
+   [GEN7_ATOM_INDICES] = &brw_indices,  /* must come before brw_vertices */
+   [GEN7_ATOM_INDEX_BUFFER] = &brw_index_buffer, 
+   [GEN7_ATOM_VERTICES] = &brw_vertices, 
+
+   [GEN7_ATOM_HASWELL_CUT_INDEX] = &haswell_cut_index,
 };
 
 static const struct brw_tracked_state *gen7_compute_atoms[] =
@@ -289,101 +306,110 @@ static const struct brw_tracked_state *gen7_compute_atoms[] =
 static const struct brw_tracked_state *gen8_render_atoms[] =
 {
    /* Command packets: */
-   &gen8_state_base_address,
-
-   &brw_cc_vp,
-   &gen8_sf_clip_viewport,
-
-   &gen7_l3_state,
-   &gen7_push_constant_space,
-   &gen7_urb,
-   &gen8_blend_state,
-   &gen6_color_calc_state,
-
-   &gen7_hw_binding_tables, /* Enable hw-generated binding tables for Broadwell */
-
-   &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 */
+   [GEN8_ATOM_STATE_BASE_ADDRESS] = &gen8_state_base_address,
+
+   [GEN8_ATOM_CC_VP] = &brw_cc_vp, 
+   [GEN8_ATOM_SF_CLIP_VIEWPORT] = &gen8_sf_clip_viewport, 
+
+   [GEN8_ATOM_L3_STATE] = &gen7_l3_state, 
+   [GEN8_ATOM_PUSH_CONSTANT_SPACE] = &gen7_push_constant_space, 
+   [GEN8_ATOM_URB] = &gen7_urb, 
+   [GEN8_ATOM_BLEND_STATE] = &gen8_blend_state, 
+   [GEN8_ATOM_COLOR_CALC_STATE] = &gen6_color_calc_state, 
+
+   /* Enable hw-generated binding tables for Broadwell */
+   [GEN8_ATOM_HW_BINDING_TABLES] = &gen7_hw_binding_tables,
+
+   /* Before vs push/pull constants and binding table */
+   [GEN8_ATOM_VS_IMAGE_SURFACES] = &brw_vs_image_surfaces,
+   /* Before tcs push/pull constants and binding table */
+   [GEN8_ATOM_TCS_IMAGE_SURFACES] = &brw_tcs_image_surfaces,
+   /* Before tes push/pull constants and binding table */
+   [GEN8_ATOM_TES_IMAGE_SURFACES] = &brw_tes_image_surfaces,
+   /* Before gs push/pull constants and binding table */
+   [GEN8_ATOM_GS_IMAGE_SURFACES] = &brw_gs_image_surfaces,
+   /* Before wm push/pull constants and binding table */
+   [GEN8_ATOM_WM_IMAGE_SURFACES] = &brw_wm_image_surfaces,
+
+   /* Before vs_state */
+   [GEN8_ATOM_VS_PUSH_CONSTANTS] = &gen6_vs_push_constants,
+   [GEN8_ATOM_TCS_PUSH_CONSTANTS] = &gen7_tcs_push_constants, 
+   [GEN8_ATOM_TES_PUSH_CONSTANTS] = &gen7_tes_push_constants, 
+   /* Before gs_state */
+   [GEN8_ATOM_GS_PUSH_CONSTANTS] = &gen6_gs_push_constants,
+   /* Before wm_surfaces and constant_buffer */
+   [GEN8_ATOM_WM_PUSH_CONSTANTS] = &gen6_wm_push_constants,
 
    /* 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_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_disable_stages,
-   &gen8_vs_state,
-   &gen8_hs_state,
-   &gen7_te_state,
-   &gen8_ds_state,
-   &gen8_gs_state,
-   &gen8_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_aa_line_parameters,
-
-   &brw_drawing_rect,
-
-   &gen8_vf_topology,
-
-   &brw_indices,
-   &gen8_index_buffer,
-   &gen8_vertices,
-
-   &haswell_cut_index,
-   &gen8_pma_fix,
+   [GEN8_ATOM_VS_PULL_CONSTANTS] = &brw_vs_pull_constants, 
+   [GEN8_ATOM_VS_UBO_SURFACES] = &brw_vs_ubo_surfaces, 
+   [GEN8_ATOM_VS_ABO_SURFACES] = &brw_vs_abo_surfaces, 
+   [GEN8_ATOM_TCS_PULL_CONSTANTS] = &brw_tcs_pull_constants, 
+   [GEN8_ATOM_TCS_UBO_SURFACES] = &brw_tcs_ubo_surfaces, 
+   [GEN8_ATOM_TCS_ABO_SURFACES] = &brw_tcs_abo_surfaces, 
+   [GEN8_ATOM_TES_PULL_CONSTANTS] = &brw_tes_pull_constants, 
+   [GEN8_ATOM_TES_UBO_SURFACES] = &brw_tes_ubo_surfaces, 
+   [GEN8_ATOM_TES_ABO_SURFACES] = &brw_tes_abo_surfaces, 
+   [GEN8_ATOM_GS_PULL_CONSTANTS] = &brw_gs_pull_constants, 
+   [GEN8_ATOM_GS_UBO_SURFACES] = &brw_gs_ubo_surfaces, 
+   [GEN8_ATOM_GS_ABO_SURFACES] = &brw_gs_abo_surfaces, 
+   [GEN8_ATOM_WM_PULL_CONSTANTS] = &brw_wm_pull_constants, 
+   [GEN8_ATOM_WM_UBO_SURFACES] = &brw_wm_ubo_surfaces, 
+   [GEN8_ATOM_WM_ABO_SURFACES] = &brw_wm_abo_surfaces, 
+   [GEN8_ATOM_RENDERBUFFER_SURFACES] = &gen6_renderbuffer_surfaces, 
+   [GEN8_ATOM_TEXTURE_SURFACES] = &brw_texture_surfaces, 
+   [GEN8_ATOM_VS_BINDING_TABLE] = &brw_vs_binding_table, 
+   [GEN8_ATOM_TCS_BINDING_TABLE] = &brw_tcs_binding_table, 
+   [GEN8_ATOM_TES_BINDING_TABLE] = &brw_tes_binding_table, 
+   [GEN8_ATOM_GS_BINDING_TABLE] = &brw_gs_binding_table, 
+   [GEN8_ATOM_WM_BINDING_TABLE] = &brw_wm_binding_table, 
+
+   [GEN8_ATOM_FS_SAMPLERS] = &brw_fs_samplers, 
+   [GEN8_ATOM_VS_SAMPLERS] = &brw_vs_samplers, 
+   [GEN8_ATOM_TCS_SAMPLERS] = &brw_tcs_samplers, 
+   [GEN8_ATOM_TES_SAMPLERS] = &brw_tes_samplers, 
+   [GEN8_ATOM_GS_SAMPLERS] = &brw_gs_samplers, 
+   [GEN8_ATOM_MULTISAMPLE_STATE] = &gen8_multisample_state, 
+
+   [GEN8_ATOM_DISABLE_STAGES] = &gen8_disable_stages, 
+   [GEN8_ATOM_VS_STATE] = &gen8_vs_state, 
+   [GEN8_ATOM_HS_STATE] = &gen8_hs_state, 
+   [GEN8_ATOM_TE_STATE] = &gen7_te_state, 
+   [GEN8_ATOM_DS_STATE] = &gen8_ds_state, 
+   [GEN8_ATOM_GS_STATE] = &gen8_gs_state, 
+   [GEN8_ATOM_SOL_STATE] = &gen8_sol_state, 
+   [GEN8_ATOM_CLIP_STATE] = &gen6_clip_state, 
+   [GEN8_ATOM_RASTER_STATE] = &gen8_raster_state, 
+   [GEN8_ATOM_SBE_STATE] = &gen8_sbe_state, 
+   [GEN8_ATOM_SF_STATE] = &gen8_sf_state, 
+   [GEN8_ATOM_PS_BLEND] = &gen8_ps_blend, 
+   [GEN8_ATOM_PS_EXTRA] = &gen8_ps_extra, 
+   [GEN8_ATOM_PS_STATE] = &gen8_ps_state, 
+   [GEN8_ATOM_WM_DEPTH_STENCIL] = &gen8_wm_depth_stencil, 
+   [GEN8_ATOM_WM_STATE] = &gen8_wm_state, 
+
+   [GEN8_ATOM_SCISSOR_STATE] = &gen6_scissor_state, 
+
+   [GEN8_ATOM_DEPTHBUFFER] = &gen7_depthbuffer, 
+
+   [GEN8_ATOM_POLYGON_STIPPLE] = &brw_polygon_stipple, 
+   [GEN8_ATOM_POLYGON_STIPPLE_OFFSET] = &brw_polygon_stipple_offset, 
+
+   [GEN8_ATOM_LINE_STIPPLE] = &brw_line_stipple, 
+   [GEN8_ATOM_AA_LINE_PARAMETERS] = &brw_aa_line_parameters, 
+
+   [GEN8_ATOM_DRAWING_RECT] = &brw_drawing_rect, 
+
+   [GEN8_ATOM_VF_TOPOLOGY] = &gen8_vf_topology, 
+
+   [GEN8_ATOM_INDICES] = &brw_indices, 
+   [GEN8_ATOM_INDEX_BUFFER] = &gen8_index_buffer, 
+   [GEN8_ATOM_VERTICES] = &gen8_vertices, 
+
+   [GEN8_ATOM_HASWELL_CUT_INDEX] = &haswell_cut_index,
+   [GEN8_ATOM_PMA_FIX] = &gen8_pma_fix, 
 };
 
 static const struct brw_tracked_state *gen8_compute_atoms[] =
-- 
2.5.0



More information about the mesa-dev mailing list