mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 02:28:10 +02:00
llvmpipe: fix non-multisampled rendering to multisampled framebuffer
Don't depend moving between samples on key->multisample Big CI wins Reported-by: Erik Faye-Lund <kusmabite@gmail.com> Reviewed-by: Emma Anholt <emma@anholt.net> Fixes:210d714f46("llvmpipe: handle multisample color stores.") Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10780> (cherry picked from commit172c719baf)
This commit is contained in:
parent
914f4e943b
commit
896b02031b
3 changed files with 3 additions and 52 deletions
|
|
@ -418,7 +418,7 @@
|
|||
"description": "llvmpipe: fix non-multisampled rendering to multisampled framebuffer",
|
||||
"nominated": true,
|
||||
"nomination_type": 1,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"master_sha": null,
|
||||
"because_sha": "210d714f46e72c954857ba32ca9ffcffbc264c9c"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -512,36 +512,8 @@ spec/arb_sample_shading/interpolate-at-sample-position 8: skip
|
|||
spec/arb_sample_shading/samplemask 0 all: skip
|
||||
spec/arb_sample_shading/samplemask 16: skip
|
||||
spec/arb_sample_shading/samplemask 16 all: skip
|
||||
spec/arb_sample_shading/samplemask 2 all/0.250000 mask_in_one: fail
|
||||
spec/arb_sample_shading/samplemask 2 all/0.500000 mask_in_one: fail
|
||||
spec/arb_sample_shading/samplemask 2 all/1.000000 mask_in_one: fail
|
||||
spec/arb_sample_shading/samplemask 2 all/noms fix: fail
|
||||
spec/arb_sample_shading/samplemask 2 all/noms mask_in_one: fail
|
||||
spec/arb_sample_shading/samplemask 2 all/noms partition: fail
|
||||
spec/arb_sample_shading/samplemask 2 all/sample mask_in_one: fail
|
||||
spec/arb_sample_shading/samplemask 2/0.250000 mask_in_one: fail
|
||||
spec/arb_sample_shading/samplemask 2/0.500000 mask_in_one: fail
|
||||
spec/arb_sample_shading/samplemask 2/1.000000 mask_in_one: fail
|
||||
spec/arb_sample_shading/samplemask 2/noms fix: fail
|
||||
spec/arb_sample_shading/samplemask 2/noms mask_in_one: fail
|
||||
spec/arb_sample_shading/samplemask 2/noms partition: fail
|
||||
spec/arb_sample_shading/samplemask 2/sample mask_in_one: fail
|
||||
spec/arb_sample_shading/samplemask 32: skip
|
||||
spec/arb_sample_shading/samplemask 32 all: skip
|
||||
spec/arb_sample_shading/samplemask 4 all/0.250000 mask_in_one: fail
|
||||
spec/arb_sample_shading/samplemask 4 all/0.500000 mask_in_one: fail
|
||||
spec/arb_sample_shading/samplemask 4 all/1.000000 mask_in_one: fail
|
||||
spec/arb_sample_shading/samplemask 4 all/noms fix: fail
|
||||
spec/arb_sample_shading/samplemask 4 all/noms mask_in_one: fail
|
||||
spec/arb_sample_shading/samplemask 4 all/noms partition: fail
|
||||
spec/arb_sample_shading/samplemask 4 all/sample mask_in_one: fail
|
||||
spec/arb_sample_shading/samplemask 4/0.250000 mask_in_one: fail
|
||||
spec/arb_sample_shading/samplemask 4/0.500000 mask_in_one: fail
|
||||
spec/arb_sample_shading/samplemask 4/1.000000 mask_in_one: fail
|
||||
spec/arb_sample_shading/samplemask 4/noms fix: fail
|
||||
spec/arb_sample_shading/samplemask 4/noms mask_in_one: fail
|
||||
spec/arb_sample_shading/samplemask 4/noms partition: fail
|
||||
spec/arb_sample_shading/samplemask 4/sample mask_in_one: fail
|
||||
spec/arb_sample_shading/samplemask 6: skip
|
||||
spec/arb_sample_shading/samplemask 6 all: skip
|
||||
spec/arb_sample_shading/samplemask 8: skip
|
||||
|
|
@ -718,9 +690,7 @@ spec/arb_sparse_buffer/minmax: skip
|
|||
spec/arb_tessellation_shader/arb_tessellation_shader-immediate-mode-draw-patches: skip
|
||||
spec/arb_texture_buffer_object/negative-unsupported: skip
|
||||
spec/arb_texture_cube_map/copyteximage cube samples=16: skip
|
||||
spec/arb_texture_cube_map/copyteximage cube samples=2: fail
|
||||
spec/arb_texture_cube_map/copyteximage cube samples=32: skip
|
||||
spec/arb_texture_cube_map/copyteximage cube samples=4: fail
|
||||
spec/arb_texture_cube_map/copyteximage cube samples=6: skip
|
||||
spec/arb_texture_cube_map/copyteximage cube samples=8: skip
|
||||
spec/arb_texture_float/multisample-formats 16 gl_arb_texture_float: skip
|
||||
|
|
@ -814,9 +784,7 @@ spec/arb_texture_multisample/texelfetch/8-vs-sampler2dmsarray: skip
|
|||
spec/arb_texture_multisample/texelfetch/8-vs-usampler2dms: skip
|
||||
spec/arb_texture_multisample/texelfetch/8-vs-usampler2dmsarray: skip
|
||||
spec/arb_texture_rectangle/copyteximage rect samples=16: skip
|
||||
spec/arb_texture_rectangle/copyteximage rect samples=2: fail
|
||||
spec/arb_texture_rectangle/copyteximage rect samples=32: skip
|
||||
spec/arb_texture_rectangle/copyteximage rect samples=4: fail
|
||||
spec/arb_texture_rectangle/copyteximage rect samples=6: skip
|
||||
spec/arb_texture_rectangle/copyteximage rect samples=8: skip
|
||||
spec/arb_texture_rg/multisample-formats 16 gl_arb_texture_rg: skip
|
||||
|
|
@ -1099,15 +1067,11 @@ spec/ext_framebuffer_multisample/alpha-to-one-dual-src-blend 32: skip
|
|||
spec/ext_framebuffer_multisample/alpha-to-one-dual-src-blend 6: skip
|
||||
spec/ext_framebuffer_multisample/alpha-to-one-dual-src-blend 8: skip
|
||||
spec/ext_framebuffer_multisample/alpha-to-one-msaa-disabled 16: skip
|
||||
spec/ext_framebuffer_multisample/alpha-to-one-msaa-disabled 2: fail
|
||||
spec/ext_framebuffer_multisample/alpha-to-one-msaa-disabled 32: skip
|
||||
spec/ext_framebuffer_multisample/alpha-to-one-msaa-disabled 4: fail
|
||||
spec/ext_framebuffer_multisample/alpha-to-one-msaa-disabled 6: skip
|
||||
spec/ext_framebuffer_multisample/alpha-to-one-msaa-disabled 8: skip
|
||||
spec/ext_framebuffer_multisample/bitmap 16: skip
|
||||
spec/ext_framebuffer_multisample/bitmap 2: fail
|
||||
spec/ext_framebuffer_multisample/bitmap 32: skip
|
||||
spec/ext_framebuffer_multisample/bitmap 4: fail
|
||||
spec/ext_framebuffer_multisample/bitmap 6: skip
|
||||
spec/ext_framebuffer_multisample/bitmap 8: skip
|
||||
spec/ext_framebuffer_multisample/blit-flipped 16 x: skip
|
||||
|
|
@ -1163,7 +1127,6 @@ spec/ext_framebuffer_multisample/draw-buffers-alpha-to-one 16: skip
|
|||
spec/ext_framebuffer_multisample/draw-buffers-alpha-to-one 32: skip
|
||||
spec/ext_framebuffer_multisample/draw-buffers-alpha-to-one 6: skip
|
||||
spec/ext_framebuffer_multisample/draw-buffers-alpha-to-one 8: skip
|
||||
spec/ext_framebuffer_multisample/enable-flag: fail
|
||||
spec/ext_framebuffer_multisample/formats 16: skip
|
||||
spec/ext_framebuffer_multisample/formats 32: skip
|
||||
spec/ext_framebuffer_multisample/formats 6: skip
|
||||
|
|
@ -1183,11 +1146,7 @@ spec/ext_framebuffer_multisample/interpolation 16 centroid-edges: skip
|
|||
spec/ext_framebuffer_multisample/interpolation 16 non-centroid-deriv: skip
|
||||
spec/ext_framebuffer_multisample/interpolation 16 non-centroid-deriv-disabled: skip
|
||||
spec/ext_framebuffer_multisample/interpolation 16 non-centroid-disabled: skip
|
||||
spec/ext_framebuffer_multisample/interpolation 2 centroid-deriv-disabled: fail
|
||||
spec/ext_framebuffer_multisample/interpolation 2 centroid-disabled: fail
|
||||
spec/ext_framebuffer_multisample/interpolation 2 centroid-edges: fail
|
||||
spec/ext_framebuffer_multisample/interpolation 2 non-centroid-deriv-disabled: fail
|
||||
spec/ext_framebuffer_multisample/interpolation 2 non-centroid-disabled: fail
|
||||
spec/ext_framebuffer_multisample/interpolation 32 centroid-deriv: skip
|
||||
spec/ext_framebuffer_multisample/interpolation 32 centroid-deriv-disabled: skip
|
||||
spec/ext_framebuffer_multisample/interpolation 32 centroid-disabled: skip
|
||||
|
|
@ -1195,11 +1154,7 @@ spec/ext_framebuffer_multisample/interpolation 32 centroid-edges: skip
|
|||
spec/ext_framebuffer_multisample/interpolation 32 non-centroid-deriv: skip
|
||||
spec/ext_framebuffer_multisample/interpolation 32 non-centroid-deriv-disabled: skip
|
||||
spec/ext_framebuffer_multisample/interpolation 32 non-centroid-disabled: skip
|
||||
spec/ext_framebuffer_multisample/interpolation 4 centroid-deriv-disabled: fail
|
||||
spec/ext_framebuffer_multisample/interpolation 4 centroid-disabled: fail
|
||||
spec/ext_framebuffer_multisample/interpolation 4 centroid-edges: fail
|
||||
spec/ext_framebuffer_multisample/interpolation 4 non-centroid-deriv-disabled: fail
|
||||
spec/ext_framebuffer_multisample/interpolation 4 non-centroid-disabled: fail
|
||||
spec/ext_framebuffer_multisample/interpolation 6 centroid-deriv: skip
|
||||
spec/ext_framebuffer_multisample/interpolation 6 centroid-deriv-disabled: skip
|
||||
spec/ext_framebuffer_multisample/interpolation 6 centroid-disabled: skip
|
||||
|
|
@ -1432,15 +1387,11 @@ spec/ext_shader_samples_identical/ext_shader_samples_identical-simple-fs 4: skip
|
|||
spec/ext_shader_samples_identical/ext_shader_samples_identical-simple-fs 6: skip
|
||||
spec/ext_shader_samples_identical/ext_shader_samples_identical-simple-fs 8: skip
|
||||
spec/ext_texture_array/copyteximage 1d_array samples=16: skip
|
||||
spec/ext_texture_array/copyteximage 1d_array samples=2: fail
|
||||
spec/ext_texture_array/copyteximage 1d_array samples=32: skip
|
||||
spec/ext_texture_array/copyteximage 1d_array samples=4: fail
|
||||
spec/ext_texture_array/copyteximage 1d_array samples=6: skip
|
||||
spec/ext_texture_array/copyteximage 1d_array samples=8: skip
|
||||
spec/ext_texture_array/copyteximage 2d_array samples=16: skip
|
||||
spec/ext_texture_array/copyteximage 2d_array samples=2: fail
|
||||
spec/ext_texture_array/copyteximage 2d_array samples=32: skip
|
||||
spec/ext_texture_array/copyteximage 2d_array samples=4: fail
|
||||
spec/ext_texture_array/copyteximage 2d_array samples=6: skip
|
||||
spec/ext_texture_array/copyteximage 2d_array samples=8: skip
|
||||
spec/ext_texture_integer/fbo-integer: fail
|
||||
|
|
|
|||
|
|
@ -3291,7 +3291,7 @@ generate_fragment(struct llvmpipe_context *lp,
|
|||
LLVMBuildGEP(builder, stride_ptr, &index, 1, ""),
|
||||
"");
|
||||
|
||||
if (key->multisample)
|
||||
if (key->cbuf_nr_samples[cbuf] > 1)
|
||||
sample_stride = LLVMBuildLoad(builder,
|
||||
LLVMBuildGEP(builder, color_sample_stride_ptr,
|
||||
&index, 1, ""), "");
|
||||
|
|
@ -3301,7 +3301,7 @@ generate_fragment(struct llvmpipe_context *lp,
|
|||
unsigned out_idx = key->min_samples == 1 ? 0 : s;
|
||||
LLVMValueRef out_ptr = color_ptr;;
|
||||
|
||||
if (key->multisample) {
|
||||
if (sample_stride) {
|
||||
LLVMValueRef sample_offset = LLVMBuildMul(builder, sample_stride, lp_build_const_int32(gallivm, s), "");
|
||||
out_ptr = LLVMBuildGEP(builder, out_ptr, &sample_offset, 1, "");
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue