X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fintel%2Fvulkan%2Fanv_private.h;h=fa40c71839a360aabc9bdd38fc61caa8e4288ae0;hb=0c4e89ad5b9cc9a3e2afdab86602f643e69e9412;hp=6f839db94d7d1610d70cb58fd689362a314c3700;hpb=78f3dfb4a23b6d118e6c33ecdc5a9cdbcc551e4d;p=mesa.git diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h index 6f839db94d7..fa40c71839a 100644 --- a/src/intel/vulkan/anv_private.h +++ b/src/intel/vulkan/anv_private.h @@ -57,6 +57,7 @@ #include "util/u_vector.h" #include "util/u_math.h" #include "util/vma.h" +#include "util/xmlconfig.h" #include "vk_alloc.h" #include "vk_debug_report.h" @@ -1009,6 +1010,9 @@ struct anv_instance { bool pipeline_cache_enabled; struct vk_debug_report_instance debug_report_callbacks; + + struct driOptionCache dri_options; + struct driOptionCache available_dri_options; }; VkResult anv_init_wsi(struct anv_physical_device *physical_device); @@ -1139,6 +1143,8 @@ struct anv_device { struct anv_state border_colors; + struct anv_state slice_hash; + struct anv_queue queue; struct anv_scratch_pool scratch_pool; @@ -1504,6 +1510,11 @@ _anv_combine_address(struct anv_batch *batch, void *location, #define GEN11_MOCS GEN9_MOCS #define GEN11_EXTERNAL_MOCS GEN9_EXTERNAL_MOCS +/* TigerLake MOCS */ +#define GEN12_MOCS GEN9_MOCS +/* TC=1/LLC Only, LeCC=1/Uncacheable, LRUM=0, L3CC=1/Uncacheable */ +#define GEN12_EXTERNAL_MOCS (3 << 1) + struct anv_device_memory { struct list_head link; @@ -2273,9 +2284,9 @@ struct anv_dynamic_state { extern const struct anv_dynamic_state default_dynamic_state; -void anv_dynamic_state_copy(struct anv_dynamic_state *dest, - const struct anv_dynamic_state *src, - uint32_t copy_mask); +uint32_t anv_dynamic_state_copy(struct anv_dynamic_state *dest, + const struct anv_dynamic_state *src, + uint32_t copy_mask); struct anv_surface_state { struct anv_state state; @@ -2794,6 +2805,17 @@ anv_shader_bin_unref(struct anv_device *device, struct anv_shader_bin *shader) anv_shader_bin_destroy(device, shader); } +/* 5 possible simultaneous shader stages and FS may have up to 3 binaries */ +#define MAX_PIPELINE_EXECUTABLES 7 + +struct anv_pipeline_executable { + gl_shader_stage stage; + + struct brw_compile_stats stats; + + char *disasm; +}; + struct anv_pipeline { struct anv_device * device; struct anv_batch batch; @@ -2802,12 +2824,18 @@ struct anv_pipeline { anv_cmd_dirty_mask_t dynamic_state_mask; struct anv_dynamic_state dynamic_state; + void * mem_ctx; + + VkPipelineCreateFlags flags; struct anv_subpass * subpass; bool needs_data_cache; struct anv_shader_bin * shaders[MESA_SHADER_STAGES]; + uint32_t num_executables; + struct anv_pipeline_executable executables[MAX_PIPELINE_EXECUTABLES]; + struct { const struct gen_l3_config * l3_config; uint32_t total_size; @@ -3790,6 +3818,9 @@ ANV_DEFINE_NONDISP_HANDLE_CASTS(anv_ycbcr_conversion, VkSamplerYcbcrConversion) # define genX(x) gen11_##x # include "anv_genX.h" # undef genX +# define genX(x) gen12_##x +# include "anv_genX.h" +# undef genX #endif #endif /* ANV_PRIVATE_H */