mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-06 13:10:10 +01:00
The load_*_uniform_block_intel intrinsics always load either 8x or 16x 32-bit components worth of data (so 32 byte increments). This leads to cases where we load a few components from one vec8, followed by a few components of an adjacent vec8. We want to combine those into a vec16 load, as that loads a whole cacheline at a time, and requires less hoops to calculate addresses and request memory loads. So, we allow 7 * 4 = 28 bytes of holes, which handles vec8+vec8 where only the .x component is read. Most drivers and intrinsics will not want such large holes. I thought about adding a per-intrinsic max_hole to the core code, but decided that since we already have driver callbacks, we can just rely on them to reject what makes sense to them. No driver callbacks currently allow holes, so this should not currently affect any drivers. But any work in progress branches may need to be updated to reject larger holes. Reviewed-by: Marek Olšák <marek.olsak@amd.com> Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32315> |
||
|---|---|---|
| .. | ||
| algebraic_parser_test.py | ||
| algebraic_tests.cpp | ||
| builder_tests.cpp | ||
| comparison_pre_tests.cpp | ||
| control_flow_tests.cpp | ||
| core_tests.cpp | ||
| dce_tests.cpp | ||
| format_convert_tests.cpp | ||
| load_store_vectorizer_tests.cpp | ||
| loop_analyze_tests.cpp | ||
| loop_unroll_tests.cpp | ||
| lower_alu_width_tests.cpp | ||
| mod_analysis_tests.cpp | ||
| negative_equal_tests.cpp | ||
| nir_opt_varyings_test.h | ||
| nir_test.h | ||
| opt_if_tests.cpp | ||
| opt_loop_tests.cpp | ||
| opt_peephole_select.cpp | ||
| opt_shrink_vectors_tests.cpp | ||
| opt_varyings_tests_bicm_binary_alu.cpp | ||
| opt_varyings_tests_dead_input.cpp | ||
| opt_varyings_tests_dead_output.cpp | ||
| opt_varyings_tests_dedup.cpp | ||
| opt_varyings_tests_prop_const.cpp | ||
| opt_varyings_tests_prop_ubo.cpp | ||
| opt_varyings_tests_prop_uniform.cpp | ||
| opt_varyings_tests_prop_uniform_expr.cpp | ||
| range_analysis_tests.cpp | ||
| serialize_tests.cpp | ||
| vars_tests.cpp | ||