virgl: lower image variable offsets into the intrinsic range_base value

With that we get the correct base offset when accessing image arrays.
This is required if there a various images with different access
specifiers, because only with the correct base offset the host driver is
able to pick the right array.

Fixes GL-CTS: KHR-GL43.shading_language_420pack.binding_image_array

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19980>
This commit is contained in:
Gert Wollny
2022-11-24 13:26:17 +01:00
committed by Marge Bot
parent 7380656a8c
commit 994cf0e995
2 changed files with 1 additions and 5 deletions

View File

@@ -67,11 +67,6 @@ KHR-Single-GL43.arrays_of_arrays_gl.SubroutineArgumentAliasing4,Fail
KHR-Single-GL43.arrays_of_arrays_gl.SubroutineFunctionCalls1,Fail
KHR-Single-GL43.arrays_of_arrays_gl.SubroutineFunctionCalls2,Fail
# virglrenderer translates TGSI IMAGE declaration "WR" ("image is not readonly")
# into the writeonly qualifier, which works for gles (where each image is either
# RO or WO) but not for desktop GL.
KHR-GL43.shading_language_420pack.binding_image_array,Fail
KHR-GL43.shading_language_420pack.binding_images,Fail
KHR-GL43.texture_view.view_sampling,Fail
KHR-GL43.transform_feedback_overflow_query_ARB.advanced-single-stream-interleaved-attribs,Fail

View File

@@ -1180,6 +1180,7 @@ virgl_create_screen(struct virgl_winsys *vws, const struct pipe_screen_config *c
}
screen->compiler_options.lower_ffma32 = true;
screen->compiler_options.fuse_ffma32 = false;
screen->compiler_options.lower_image_offset_to_range_base = true;
slab_create_parent(&screen->transfer_pool, sizeof(struct virgl_transfer), 16);