mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 09:08:10 +02:00
llvmpipe: fix early depth + alpha2coverage + occlusion query interaction
in this scenario, sample counting must happen before a2c, as a2c may eliminate
coverage if alpha is zero, leading to a sample count of zero
dEQP-VK.fragment_operations.early_fragment.sample_count_early_fragment_tests_depth_alpha_to_coverage_samples_4_maintenance5
cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24589>
(cherry picked from commit ce09458917)
This commit is contained in:
parent
0be3be7c6b
commit
700bf5d323
5 changed files with 8 additions and 12 deletions
|
|
@ -463,7 +463,7 @@
|
|||
"description": "llvmpipe: fix early depth + alpha2coverage + occlusion query interaction",
|
||||
"nominated": true,
|
||||
"nomination_type": 0,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": null
|
||||
},
|
||||
|
|
|
|||
|
|
@ -76,12 +76,6 @@ spec@arb_post_depth_coverage@arb_post_depth_coverage-multisampling,Fail
|
|||
spec@arb_program_interface_query@arb_program_interface_query-getprogramresourceindex,Fail
|
||||
spec@arb_program_interface_query@arb_program_interface_query-getprogramresourceindex@'vs_input2[1][0]' on GL_PROGRAM_INPUT,Fail
|
||||
|
||||
# Query result
|
||||
# Expected: 1536
|
||||
# Observed: 768
|
||||
spec@arb_shader_image_load_store@early-z,Fail
|
||||
spec@arb_shader_image_load_store@early-z@occlusion query test/early-z pass,Fail
|
||||
|
||||
spec@arb_shader_image_load_store@execution@image-array-out-of-bounds-access-load,Crash
|
||||
spec@arb_shader_image_load_store@execution@image-array-out-of-bounds-access-store,Crash
|
||||
|
||||
|
|
|
|||
|
|
@ -940,6 +940,12 @@ generate_fs_loop(struct gallivm_state *gallivm,
|
|||
lp_build_pointer_set(builder, z_fb_store, sample_loop_state.counter, z_fb);
|
||||
lp_build_pointer_set(builder, s_fb_store, sample_loop_state.counter, s_fb);
|
||||
}
|
||||
if (key->occlusion_count && !(depth_mode & EARLY_DEPTH_TEST_INFERRED)) {
|
||||
LLVMValueRef counter = lp_jit_thread_data_vis_counter(gallivm, thread_data_type, thread_data_ptr);
|
||||
lp_build_name(counter, "counter");
|
||||
lp_build_occlusion_count(gallivm, type,
|
||||
key->multisample ? s_mask : lp_build_mask_value(&mask), counter);
|
||||
}
|
||||
}
|
||||
|
||||
if (key->multisample) {
|
||||
|
|
@ -1345,7 +1351,7 @@ generate_fs_loop(struct gallivm_state *gallivm,
|
|||
z_value, s_value);
|
||||
}
|
||||
|
||||
if (key->occlusion_count) {
|
||||
if (key->occlusion_count && (!(depth_mode & EARLY_DEPTH_TEST) || (depth_mode & EARLY_DEPTH_TEST_INFERRED))) {
|
||||
LLVMValueRef counter = lp_jit_thread_data_vis_counter(gallivm, thread_data_type, thread_data_ptr);
|
||||
lp_build_name(counter, "counter");
|
||||
|
||||
|
|
|
|||
|
|
@ -291,8 +291,6 @@ spec@arb_program_interface_query@arb_program_interface_query-getprogramresourcei
|
|||
spec@arb_program_interface_query@arb_program_interface_query-getprogramresourceindex@'vs_input2[1][0]' on GL_PROGRAM_INPUT,Fail
|
||||
|
||||
spec@arb_sample_shading@builtin-gl-sample-position 2,Fail
|
||||
spec@arb_shader_image_load_store@early-z,Fail
|
||||
spec@arb_shader_image_load_store@early-z@occlusion query test/early-z pass,Fail
|
||||
|
||||
spec@arb_shader_image_load_store@layer,Fail
|
||||
spec@arb_shader_image_load_store@layer@image2DMS/layered binding test,Fail
|
||||
|
|
|
|||
|
|
@ -152,8 +152,6 @@ spec@khr_texture_compression_astc@sliced-3d-miptree-gles srgb-fp,Fail
|
|||
spec@khr_texture_compression_astc@sliced-3d-miptree-gles srgb-fp@sRGB decode full precision,Fail
|
||||
spec@!opengl 3.0@clearbuffer-depth-cs-probe,Fail
|
||||
spec@arb_post_depth_coverage@arb_post_depth_coverage-multisampling,Fail
|
||||
spec@arb_shader_image_load_store@early-z,Fail
|
||||
spec@arb_shader_image_load_store@early-z@occlusion query test/early-z pass,Fail
|
||||
|
||||
spec@arb_shader_image_load_store@execution@image-array-out-of-bounds-access-load,Crash
|
||||
spec@arb_shader_image_load_store@execution@image-array-out-of-bounds-access-store,Crash
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue