X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fintel%2Fvulkan%2Fanv_nir.h;h=9095f2d58d3b23fc4616c8a25f9c086f3f2870b3;hb=63c193e921e5936c0d4a906285627ac11fd267f7;hp=8ac0a119dac38c561c59dcb877c811d0df8e3214;hpb=f3e91e78a3377594f0ef40ba50abed04dc590623;p=mesa.git diff --git a/src/intel/vulkan/anv_nir.h b/src/intel/vulkan/anv_nir.h index 8ac0a119dac..9095f2d58d3 100644 --- a/src/intel/vulkan/anv_nir.h +++ b/src/intel/vulkan/anv_nir.h @@ -31,20 +31,47 @@ extern "C" { #endif -void anv_nir_lower_input_attachments(nir_shader *shader); +bool anv_check_for_primitive_replication(nir_shader **shaders, + struct anv_graphics_pipeline *pipeline); -void anv_nir_lower_push_constants(nir_shader *shader); - -bool anv_nir_lower_multiview(nir_shader *shader, uint32_t view_mask); +bool anv_nir_lower_multiview(nir_shader *shader, + struct anv_graphics_pipeline *pipeline); bool anv_nir_lower_ycbcr_textures(nir_shader *shader, - struct anv_pipeline *pipeline); + const struct anv_pipeline_layout *layout); + +static inline nir_address_format +anv_nir_ssbo_addr_format(const struct anv_physical_device *pdevice, + bool robust_buffer_access) +{ + if (pdevice->has_a64_buffer_access) { + if (robust_buffer_access) + return nir_address_format_64bit_bounded_global; + else + return nir_address_format_64bit_global; + } else { + return nir_address_format_32bit_index_offset; + } +} -void anv_nir_apply_pipeline_layout(struct anv_pipeline *pipeline, +void anv_nir_apply_pipeline_layout(const struct anv_physical_device *pdevice, + bool robust_buffer_access, + const struct anv_pipeline_layout *layout, nir_shader *shader, - struct brw_stage_prog_data *prog_data, struct anv_pipeline_bind_map *map); +void anv_nir_compute_push_layout(const struct anv_physical_device *pdevice, + bool robust_buffer_access, + nir_shader *nir, + struct brw_stage_prog_data *prog_data, + struct anv_pipeline_bind_map *map, + void *mem_ctx); + +void anv_nir_validate_push_layout(struct brw_stage_prog_data *prog_data, + struct anv_pipeline_bind_map *map); + +bool anv_nir_add_base_work_group_id(nir_shader *shader); + #ifdef __cplusplus } #endif