/* * Mesa 3-D graphics library * * Copyright (C) 2013 LunarG, Inc. * * 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 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. * * Authors: * Chia-I Wu */ #ifndef ILO_GPE_GEN7_H #define ILO_GPE_GEN7_H #include "ilo_common.h" #include "ilo_gpe_gen6.h" /** * Commands that GEN7 GPE could emit. */ enum ilo_gpe_gen7_command { ILO_GPE_GEN7_STATE_BASE_ADDRESS, /* (0x0, 0x1, 0x01) */ ILO_GPE_GEN7_STATE_SIP, /* (0x0, 0x1, 0x02) */ ILO_GPE_GEN7_3DSTATE_VF_STATISTICS, /* (0x1, 0x0, 0x0b) */ ILO_GPE_GEN7_PIPELINE_SELECT, /* (0x1, 0x1, 0x04) */ ILO_GPE_GEN7_MEDIA_VFE_STATE, /* (0x2, 0x0, 0x00) */ ILO_GPE_GEN7_MEDIA_CURBE_LOAD, /* (0x2, 0x0, 0x01) */ ILO_GPE_GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD, /* (0x2, 0x0, 0x02) */ ILO_GPE_GEN7_MEDIA_STATE_FLUSH, /* (0x2, 0x0, 0x04) */ ILO_GPE_GEN7_GPGPU_WALKER, /* (0x2, 0x1, 0x05) */ ILO_GPE_GEN7_3DSTATE_CLEAR_PARAMS, /* (0x3, 0x0, 0x04) */ ILO_GPE_GEN7_3DSTATE_DEPTH_BUFFER, /* (0x3, 0x0, 0x05) */ ILO_GPE_GEN7_3DSTATE_STENCIL_BUFFER, /* (0x3, 0x0, 0x06) */ ILO_GPE_GEN7_3DSTATE_HIER_DEPTH_BUFFER, /* (0x3, 0x0, 0x07) */ ILO_GPE_GEN7_3DSTATE_VERTEX_BUFFERS, /* (0x3, 0x0, 0x08) */ ILO_GPE_GEN7_3DSTATE_VERTEX_ELEMENTS, /* (0x3, 0x0, 0x09) */ ILO_GPE_GEN7_3DSTATE_INDEX_BUFFER, /* (0x3, 0x0, 0x0a) */ ILO_GPE_GEN7_3DSTATE_CC_STATE_POINTERS, /* (0x3, 0x0, 0x0e) */ ILO_GPE_GEN7_3DSTATE_SCISSOR_STATE_POINTERS, /* (0x3, 0x0, 0x0f) */ ILO_GPE_GEN7_3DSTATE_VS, /* (0x3, 0x0, 0x10) */ ILO_GPE_GEN7_3DSTATE_GS, /* (0x3, 0x0, 0x11) */ ILO_GPE_GEN7_3DSTATE_CLIP, /* (0x3, 0x0, 0x12) */ ILO_GPE_GEN7_3DSTATE_SF, /* (0x3, 0x0, 0x13) */ ILO_GPE_GEN7_3DSTATE_WM, /* (0x3, 0x0, 0x14) */ ILO_GPE_GEN7_3DSTATE_CONSTANT_VS, /* (0x3, 0x0, 0x15) */ ILO_GPE_GEN7_3DSTATE_CONSTANT_GS, /* (0x3, 0x0, 0x16) */ ILO_GPE_GEN7_3DSTATE_CONSTANT_PS, /* (0x3, 0x0, 0x17) */ ILO_GPE_GEN7_3DSTATE_SAMPLE_MASK, /* (0x3, 0x0, 0x18) */ ILO_GPE_GEN7_3DSTATE_CONSTANT_HS, /* (0x3, 0x0, 0x19) */ ILO_GPE_GEN7_3DSTATE_CONSTANT_DS, /* (0x3, 0x0, 0x1a) */ ILO_GPE_GEN7_3DSTATE_HS, /* (0x3, 0x0, 0x1b) */ ILO_GPE_GEN7_3DSTATE_TE, /* (0x3, 0x0, 0x1c) */ ILO_GPE_GEN7_3DSTATE_DS, /* (0x3, 0x0, 0x1d) */ ILO_GPE_GEN7_3DSTATE_STREAMOUT, /* (0x3, 0x0, 0x1e) */ ILO_GPE_GEN7_3DSTATE_SBE, /* (0x3, 0x0, 0x1f) */ ILO_GPE_GEN7_3DSTATE_PS, /* (0x3, 0x0, 0x20) */ ILO_GPE_GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP, /* (0x3, 0x0, 0x21) */ ILO_GPE_GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC, /* (0x3, 0x0, 0x23) */ ILO_GPE_GEN7_3DSTATE_BLEND_STATE_POINTERS, /* (0x3, 0x0, 0x24) */ ILO_GPE_GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS, /* (0x3, 0x0, 0x25) */ ILO_GPE_GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS, /* (0x3, 0x0, 0x26) */ ILO_GPE_GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS, /* (0x3, 0x0, 0x27) */ ILO_GPE_GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS, /* (0x3, 0x0, 0x28) */ ILO_GPE_GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS, /* (0x3, 0x0, 0x29) */ ILO_GPE_GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS, /* (0x3, 0x0, 0x2a) */ ILO_GPE_GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS, /* (0x3, 0x0, 0x2b) */ ILO_GPE_GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS, /* (0x3, 0x0, 0x2c) */ ILO_GPE_GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS, /* (0x3, 0x0, 0x2d) */ ILO_GPE_GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS, /* (0x3, 0x0, 0x2e) */ ILO_GPE_GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS, /* (0x3, 0x0, 0x2f) */ ILO_GPE_GEN7_3DSTATE_URB_VS, /* (0x3, 0x0, 0x30) */ ILO_GPE_GEN7_3DSTATE_URB_HS, /* (0x3, 0x0, 0x31) */ ILO_GPE_GEN7_3DSTATE_URB_DS, /* (0x3, 0x0, 0x32) */ ILO_GPE_GEN7_3DSTATE_URB_GS, /* (0x3, 0x0, 0x33) */ ILO_GPE_GEN7_3DSTATE_DRAWING_RECTANGLE, /* (0x3, 0x1, 0x00) */ ILO_GPE_GEN7_3DSTATE_POLY_STIPPLE_OFFSET, /* (0x3, 0x1, 0x06) */ ILO_GPE_GEN7_3DSTATE_POLY_STIPPLE_PATTERN, /* (0x3, 0x1, 0x07) */ ILO_GPE_GEN7_3DSTATE_LINE_STIPPLE, /* (0x3, 0x1, 0x08) */ ILO_GPE_GEN7_3DSTATE_AA_LINE_PARAMETERS, /* (0x3, 0x1, 0x0a) */ ILO_GPE_GEN7_3DSTATE_MULTISAMPLE, /* (0x3, 0x1, 0x0d) */ ILO_GPE_GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS, /* (0x3, 0x1, 0x12) */ ILO_GPE_GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS, /* (0x3, 0x1, 0x13) */ ILO_GPE_GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS, /* (0x3, 0x1, 0x14) */ ILO_GPE_GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS, /* (0x3, 0x1, 0x15) */ ILO_GPE_GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS, /* (0x3, 0x1, 0x16) */ ILO_GPE_GEN7_3DSTATE_SO_DECL_LIST, /* (0x3, 0x1, 0x17) */ ILO_GPE_GEN7_3DSTATE_SO_BUFFER, /* (0x3, 0x1, 0x18) */ ILO_GPE_GEN7_PIPE_CONTROL, /* (0x3, 0x2, 0x00) */ ILO_GPE_GEN7_3DPRIMITIVE, /* (0x3, 0x3, 0x00) */ ILO_GPE_GEN7_COMMAND_COUNT, }; /** * Indirect states that GEN7 GPE could emit. */ enum ilo_gpe_gen7_state { ILO_GPE_GEN7_INTERFACE_DESCRIPTOR_DATA, ILO_GPE_GEN7_SF_CLIP_VIEWPORT, ILO_GPE_GEN7_CC_VIEWPORT, ILO_GPE_GEN7_COLOR_CALC_STATE, ILO_GPE_GEN7_BLEND_STATE, ILO_GPE_GEN7_DEPTH_STENCIL_STATE, ILO_GPE_GEN7_SCISSOR_RECT, ILO_GPE_GEN7_BINDING_TABLE_STATE, ILO_GPE_GEN7_SURFACE_STATE, ILO_GPE_GEN7_SAMPLER_STATE, ILO_GPE_GEN7_SAMPLER_BORDER_COLOR_STATE, ILO_GPE_GEN7_PUSH_CONSTANT_BUFFER, ILO_GPE_GEN7_STATE_COUNT, }; typedef ilo_gpe_gen6_STATE_BASE_ADDRESS ilo_gpe_gen7_STATE_BASE_ADDRESS; typedef ilo_gpe_gen6_STATE_SIP ilo_gpe_gen7_STATE_SIP; typedef ilo_gpe_gen6_3DSTATE_VF_STATISTICS ilo_gpe_gen7_3DSTATE_VF_STATISTICS; typedef ilo_gpe_gen6_PIPELINE_SELECT ilo_gpe_gen7_PIPELINE_SELECT; typedef ilo_gpe_gen6_MEDIA_VFE_STATE ilo_gpe_gen7_MEDIA_VFE_STATE; typedef ilo_gpe_gen6_MEDIA_CURBE_LOAD ilo_gpe_gen7_MEDIA_CURBE_LOAD; typedef ilo_gpe_gen6_MEDIA_INTERFACE_DESCRIPTOR_LOAD ilo_gpe_gen7_MEDIA_INTERFACE_DESCRIPTOR_LOAD; typedef ilo_gpe_gen6_MEDIA_STATE_FLUSH ilo_gpe_gen7_MEDIA_STATE_FLUSH; typedef void (*ilo_gpe_gen7_GPGPU_WALKER)(const struct ilo_dev_info *dev, struct ilo_cp *cp); typedef ilo_gpe_gen6_3DSTATE_CLEAR_PARAMS ilo_gpe_gen7_3DSTATE_CLEAR_PARAMS; typedef void (*ilo_gpe_gen7_3DSTATE_DEPTH_BUFFER)(const struct ilo_dev_info *dev, const struct pipe_surface *surface, const struct pipe_depth_stencil_alpha_state *dsa, bool hiz, struct ilo_cp *cp); typedef ilo_gpe_gen6_3DSTATE_STENCIL_BUFFER ilo_gpe_gen7_3DSTATE_STENCIL_BUFFER; typedef ilo_gpe_gen6_3DSTATE_HIER_DEPTH_BUFFER ilo_gpe_gen7_3DSTATE_HIER_DEPTH_BUFFER; typedef ilo_gpe_gen6_3DSTATE_VERTEX_BUFFERS ilo_gpe_gen7_3DSTATE_VERTEX_BUFFERS; typedef ilo_gpe_gen6_3DSTATE_VERTEX_ELEMENTS ilo_gpe_gen7_3DSTATE_VERTEX_ELEMENTS; typedef ilo_gpe_gen6_3DSTATE_INDEX_BUFFER ilo_gpe_gen7_3DSTATE_INDEX_BUFFER; typedef void (*ilo_gpe_gen7_3DSTATE_CC_STATE_POINTERS)(const struct ilo_dev_info *dev, uint32_t color_calc_state, struct ilo_cp *cp); typedef ilo_gpe_gen6_3DSTATE_SCISSOR_STATE_POINTERS ilo_gpe_gen7_3DSTATE_SCISSOR_STATE_POINTERS; typedef ilo_gpe_gen6_3DSTATE_VS ilo_gpe_gen7_3DSTATE_VS; typedef void (*ilo_gpe_gen7_3DSTATE_GS)(const struct ilo_dev_info *dev, const struct ilo_shader *gs, int num_samplers, struct ilo_cp *cp); typedef ilo_gpe_gen6_3DSTATE_CLIP ilo_gpe_gen7_3DSTATE_CLIP; typedef void (*ilo_gpe_gen7_3DSTATE_SF)(const struct ilo_dev_info *dev, const struct pipe_rasterizer_state *rasterizer, const struct pipe_surface *zs_surf, struct ilo_cp *cp); typedef void (*ilo_gpe_gen7_3DSTATE_WM)(const struct ilo_dev_info *dev, const struct ilo_shader *fs, const struct pipe_rasterizer_state *rasterizer, bool cc_may_kill, struct ilo_cp *cp); typedef ilo_gpe_gen6_3DSTATE_CONSTANT_VS ilo_gpe_gen7_3DSTATE_CONSTANT_VS; typedef ilo_gpe_gen6_3DSTATE_CONSTANT_GS ilo_gpe_gen7_3DSTATE_CONSTANT_GS; typedef ilo_gpe_gen6_3DSTATE_CONSTANT_PS ilo_gpe_gen7_3DSTATE_CONSTANT_PS; typedef void (*ilo_gpe_gen7_3DSTATE_SAMPLE_MASK)(const struct ilo_dev_info *dev, unsigned sample_mask, int num_samples, struct ilo_cp *cp); typedef void (*ilo_gpe_gen7_3DSTATE_CONSTANT_HS)(const struct ilo_dev_info *dev, const uint32_t *bufs, const int *sizes, int num_bufs, struct ilo_cp *cp); typedef void (*ilo_gpe_gen7_3DSTATE_CONSTANT_DS)(const struct ilo_dev_info *dev, const uint32_t *bufs, const int *sizes, int num_bufs, struct ilo_cp *cp); typedef void (*ilo_gpe_gen7_3DSTATE_HS)(const struct ilo_dev_info *dev, const struct ilo_shader *hs, int max_threads, int num_samplers, struct ilo_cp *cp); typedef void (*ilo_gpe_gen7_3DSTATE_TE)(const struct ilo_dev_info *dev, struct ilo_cp *cp); typedef void (*ilo_gpe_gen7_3DSTATE_DS)(const struct ilo_dev_info *dev, const struct ilo_shader *ds, int max_threads, int num_samplers, struct ilo_cp *cp); typedef void (*ilo_gpe_gen7_3DSTATE_STREAMOUT)(const struct ilo_dev_info *dev, bool enable, bool rasterizer_discard, bool flatshade_first, struct ilo_cp *cp); typedef void (*ilo_gpe_gen7_3DSTATE_SBE)(const struct ilo_dev_info *dev, const struct pipe_rasterizer_state *rasterizer, const struct ilo_shader *fs, const struct ilo_shader *last_sh, struct ilo_cp *cp); typedef void (*ilo_gpe_gen7_3DSTATE_PS)(const struct ilo_dev_info *dev, const struct ilo_shader *fs, int num_samplers, bool dual_blend, struct ilo_cp *cp); typedef void (*ilo_gpe_gen7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP)(const struct ilo_dev_info *dev, uint32_t viewport, struct ilo_cp *cp); typedef void (*ilo_gpe_gen7_3DSTATE_VIEWPORT_STATE_POINTERS_CC)(const struct ilo_dev_info *dev, uint32_t viewport, struct ilo_cp *cp); typedef void (*ilo_gpe_gen7_3DSTATE_BLEND_STATE_POINTERS)(const struct ilo_dev_info *dev, uint32_t blend, struct ilo_cp *cp); typedef void (*ilo_gpe_gen7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS)(const struct ilo_dev_info *dev, uint32_t depth_stencil, struct ilo_cp *cp); typedef void (*ilo_gpe_gen7_3DSTATE_BINDING_TABLE_POINTERS_VS)(const struct ilo_dev_info *dev, uint32_t binding_table, struct ilo_cp *cp); typedef void (*ilo_gpe_gen7_3DSTATE_BINDING_TABLE_POINTERS_HS)(const struct ilo_dev_info *dev, uint32_t binding_table, struct ilo_cp *cp); typedef void (*ilo_gpe_gen7_3DSTATE_BINDING_TABLE_POINTERS_DS)(const struct ilo_dev_info *dev, uint32_t binding_table, struct ilo_cp *cp); typedef void (*ilo_gpe_gen7_3DSTATE_BINDING_TABLE_POINTERS_GS)(const struct ilo_dev_info *dev, uint32_t binding_table, struct ilo_cp *cp); typedef void (*ilo_gpe_gen7_3DSTATE_BINDING_TABLE_POINTERS_PS)(const struct ilo_dev_info *dev, uint32_t binding_table, struct ilo_cp *cp); typedef void (*ilo_gpe_gen7_3DSTATE_SAMPLER_STATE_POINTERS_VS)(const struct ilo_dev_info *dev, uint32_t sampler_state, struct ilo_cp *cp); typedef void (*ilo_gpe_gen7_3DSTATE_SAMPLER_STATE_POINTERS_HS)(const struct ilo_dev_info *dev, uint32_t sampler_state, struct ilo_cp *cp); typedef void (*ilo_gpe_gen7_3DSTATE_SAMPLER_STATE_POINTERS_DS)(const struct ilo_dev_info *dev, uint32_t sampler_state, struct ilo_cp *cp); typedef void (*ilo_gpe_gen7_3DSTATE_SAMPLER_STATE_POINTERS_GS)(const struct ilo_dev_info *dev, uint32_t sampler_state, struct ilo_cp *cp); typedef void (*ilo_gpe_gen7_3DSTATE_SAMPLER_STATE_POINTERS_PS)(const struct ilo_dev_info *dev, uint32_t sampler_state, struct ilo_cp *cp); typedef void (*ilo_gpe_gen7_3DSTATE_URB_VS)(const struct ilo_dev_info *dev, int offset, int size, int entry_size, struct ilo_cp *cp); typedef void (*ilo_gpe_gen7_3DSTATE_URB_HS)(const struct ilo_dev_info *dev, int offset, int size, int entry_size, struct ilo_cp *cp); typedef void (*ilo_gpe_gen7_3DSTATE_URB_DS)(const struct ilo_dev_info *dev, int offset, int size, int entry_size, struct ilo_cp *cp); typedef void (*ilo_gpe_gen7_3DSTATE_URB_GS)(const struct ilo_dev_info *dev, int offset, int size, int entry_size, struct ilo_cp *cp); typedef ilo_gpe_gen6_3DSTATE_DRAWING_RECTANGLE ilo_gpe_gen7_3DSTATE_DRAWING_RECTANGLE; typedef ilo_gpe_gen6_3DSTATE_POLY_STIPPLE_OFFSET ilo_gpe_gen7_3DSTATE_POLY_STIPPLE_OFFSET; typedef ilo_gpe_gen6_3DSTATE_POLY_STIPPLE_PATTERN ilo_gpe_gen7_3DSTATE_POLY_STIPPLE_PATTERN; typedef ilo_gpe_gen6_3DSTATE_LINE_STIPPLE ilo_gpe_gen7_3DSTATE_LINE_STIPPLE; typedef ilo_gpe_gen6_3DSTATE_AA_LINE_PARAMETERS ilo_gpe_gen7_3DSTATE_AA_LINE_PARAMETERS; typedef ilo_gpe_gen6_3DSTATE_MULTISAMPLE ilo_gpe_gen7_3DSTATE_MULTISAMPLE; typedef void (*ilo_gpe_gen7_3DSTATE_PUSH_CONSTANT_ALLOC_VS)(const struct ilo_dev_info *dev, int offset, int size, struct ilo_cp *cp); typedef void (*ilo_gpe_gen7_3DSTATE_PUSH_CONSTANT_ALLOC_HS)(const struct ilo_dev_info *dev, int offset, int size, struct ilo_cp *cp); typedef void (*ilo_gpe_gen7_3DSTATE_PUSH_CONSTANT_ALLOC_DS)(const struct ilo_dev_info *dev, int offset, int size, struct ilo_cp *cp); typedef void (*ilo_gpe_gen7_3DSTATE_PUSH_CONSTANT_ALLOC_GS)(const struct ilo_dev_info *dev, int offset, int size, struct ilo_cp *cp); typedef void (*ilo_gpe_gen7_3DSTATE_PUSH_CONSTANT_ALLOC_PS)(const struct ilo_dev_info *dev, int offset, int size, struct ilo_cp *cp); typedef void (*ilo_gpe_gen7_3DSTATE_SO_DECL_LIST)(const struct ilo_dev_info *dev, struct ilo_cp *cp); typedef void (*ilo_gpe_gen7_3DSTATE_SO_BUFFER)(const struct ilo_dev_info *dev, int index, bool enable, struct ilo_cp *cp); typedef ilo_gpe_gen6_PIPE_CONTROL ilo_gpe_gen7_PIPE_CONTROL; typedef ilo_gpe_gen6_3DPRIMITIVE ilo_gpe_gen7_3DPRIMITIVE; typedef ilo_gpe_gen6_INTERFACE_DESCRIPTOR_DATA ilo_gpe_gen7_INTERFACE_DESCRIPTOR_DATA; typedef uint32_t (*ilo_gpe_gen7_SF_CLIP_VIEWPORT)(const struct ilo_dev_info *dev, const struct pipe_viewport_state *viewports, int num_viewports, struct ilo_cp *cp); typedef ilo_gpe_gen6_CC_VIEWPORT ilo_gpe_gen7_CC_VIEWPORT; typedef ilo_gpe_gen6_COLOR_CALC_STATE ilo_gpe_gen7_COLOR_CALC_STATE; typedef ilo_gpe_gen6_BLEND_STATE ilo_gpe_gen7_BLEND_STATE; typedef ilo_gpe_gen6_DEPTH_STENCIL_STATE ilo_gpe_gen7_DEPTH_STENCIL_STATE; typedef ilo_gpe_gen6_SCISSOR_RECT ilo_gpe_gen7_SCISSOR_RECT; typedef ilo_gpe_gen6_BINDING_TABLE_STATE ilo_gpe_gen7_BINDING_TABLE_STATE; typedef ilo_gpe_gen6_surf_SURFACE_STATE ilo_gpe_gen7_surf_SURFACE_STATE; typedef ilo_gpe_gen6_view_SURFACE_STATE ilo_gpe_gen7_view_SURFACE_STATE; typedef ilo_gpe_gen6_cbuf_SURFACE_STATE ilo_gpe_gen7_cbuf_SURFACE_STATE; typedef ilo_gpe_gen6_SAMPLER_STATE ilo_gpe_gen7_SAMPLER_STATE; typedef ilo_gpe_gen6_SAMPLER_BORDER_COLOR_STATE ilo_gpe_gen7_SAMPLER_BORDER_COLOR_STATE; typedef ilo_gpe_gen6_push_constant_buffer ilo_gpe_gen7_push_constant_buffer; /** * GEN7 graphics processing engine * * \see ilo_gpe_gen6 */ struct ilo_gpe_gen7 { int (*estimate_command_size)(const struct ilo_dev_info *dev, enum ilo_gpe_gen7_command cmd, int arg); int (*estimate_state_size)(const struct ilo_dev_info *dev, enum ilo_gpe_gen7_state state, int arg); #define GEN7_EMIT(name) ilo_gpe_gen7_ ## name emit_ ## name GEN7_EMIT(STATE_BASE_ADDRESS); GEN7_EMIT(STATE_SIP); GEN7_EMIT(3DSTATE_VF_STATISTICS); GEN7_EMIT(PIPELINE_SELECT); GEN7_EMIT(MEDIA_VFE_STATE); GEN7_EMIT(MEDIA_CURBE_LOAD); GEN7_EMIT(MEDIA_INTERFACE_DESCRIPTOR_LOAD); GEN7_EMIT(MEDIA_STATE_FLUSH); GEN7_EMIT(GPGPU_WALKER); GEN7_EMIT(3DSTATE_CLEAR_PARAMS); GEN7_EMIT(3DSTATE_DEPTH_BUFFER); GEN7_EMIT(3DSTATE_STENCIL_BUFFER); GEN7_EMIT(3DSTATE_HIER_DEPTH_BUFFER); GEN7_EMIT(3DSTATE_VERTEX_BUFFERS); GEN7_EMIT(3DSTATE_VERTEX_ELEMENTS); GEN7_EMIT(3DSTATE_INDEX_BUFFER); GEN7_EMIT(3DSTATE_CC_STATE_POINTERS); GEN7_EMIT(3DSTATE_SCISSOR_STATE_POINTERS); GEN7_EMIT(3DSTATE_VS); GEN7_EMIT(3DSTATE_GS); GEN7_EMIT(3DSTATE_CLIP); GEN7_EMIT(3DSTATE_SF); GEN7_EMIT(3DSTATE_WM); GEN7_EMIT(3DSTATE_CONSTANT_VS); GEN7_EMIT(3DSTATE_CONSTANT_GS); GEN7_EMIT(3DSTATE_CONSTANT_PS); GEN7_EMIT(3DSTATE_SAMPLE_MASK); GEN7_EMIT(3DSTATE_CONSTANT_HS); GEN7_EMIT(3DSTATE_CONSTANT_DS); GEN7_EMIT(3DSTATE_HS); GEN7_EMIT(3DSTATE_TE); GEN7_EMIT(3DSTATE_DS); GEN7_EMIT(3DSTATE_STREAMOUT); GEN7_EMIT(3DSTATE_SBE); GEN7_EMIT(3DSTATE_PS); GEN7_EMIT(3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP); GEN7_EMIT(3DSTATE_VIEWPORT_STATE_POINTERS_CC); GEN7_EMIT(3DSTATE_BLEND_STATE_POINTERS); GEN7_EMIT(3DSTATE_DEPTH_STENCIL_STATE_POINTERS); GEN7_EMIT(3DSTATE_BINDING_TABLE_POINTERS_VS); GEN7_EMIT(3DSTATE_BINDING_TABLE_POINTERS_HS); GEN7_EMIT(3DSTATE_BINDING_TABLE_POINTERS_DS); GEN7_EMIT(3DSTATE_BINDING_TABLE_POINTERS_GS); GEN7_EMIT(3DSTATE_BINDING_TABLE_POINTERS_PS); GEN7_EMIT(3DSTATE_SAMPLER_STATE_POINTERS_VS); GEN7_EMIT(3DSTATE_SAMPLER_STATE_POINTERS_HS); GEN7_EMIT(3DSTATE_SAMPLER_STATE_POINTERS_DS); GEN7_EMIT(3DSTATE_SAMPLER_STATE_POINTERS_GS); GEN7_EMIT(3DSTATE_SAMPLER_STATE_POINTERS_PS); GEN7_EMIT(3DSTATE_URB_VS); GEN7_EMIT(3DSTATE_URB_HS); GEN7_EMIT(3DSTATE_URB_DS); GEN7_EMIT(3DSTATE_URB_GS); GEN7_EMIT(3DSTATE_DRAWING_RECTANGLE); GEN7_EMIT(3DSTATE_POLY_STIPPLE_OFFSET); GEN7_EMIT(3DSTATE_POLY_STIPPLE_PATTERN); GEN7_EMIT(3DSTATE_LINE_STIPPLE); GEN7_EMIT(3DSTATE_AA_LINE_PARAMETERS); GEN7_EMIT(3DSTATE_MULTISAMPLE); GEN7_EMIT(3DSTATE_PUSH_CONSTANT_ALLOC_VS); GEN7_EMIT(3DSTATE_PUSH_CONSTANT_ALLOC_HS); GEN7_EMIT(3DSTATE_PUSH_CONSTANT_ALLOC_DS); GEN7_EMIT(3DSTATE_PUSH_CONSTANT_ALLOC_GS); GEN7_EMIT(3DSTATE_PUSH_CONSTANT_ALLOC_PS); GEN7_EMIT(3DSTATE_SO_DECL_LIST); GEN7_EMIT(3DSTATE_SO_BUFFER); GEN7_EMIT(PIPE_CONTROL); GEN7_EMIT(3DPRIMITIVE); GEN7_EMIT(INTERFACE_DESCRIPTOR_DATA); GEN7_EMIT(SF_CLIP_VIEWPORT); GEN7_EMIT(CC_VIEWPORT); GEN7_EMIT(COLOR_CALC_STATE); GEN7_EMIT(BLEND_STATE); GEN7_EMIT(DEPTH_STENCIL_STATE); GEN7_EMIT(SCISSOR_RECT); GEN7_EMIT(BINDING_TABLE_STATE); GEN7_EMIT(surf_SURFACE_STATE); GEN7_EMIT(view_SURFACE_STATE); GEN7_EMIT(cbuf_SURFACE_STATE); GEN7_EMIT(SAMPLER_STATE); GEN7_EMIT(SAMPLER_BORDER_COLOR_STATE); GEN7_EMIT(push_constant_buffer); #undef GEN7_EMIT }; const struct ilo_gpe_gen7 * ilo_gpe_gen7_get(void); #endif /* ILO_GPE_GEN7_H */