mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-06 08:00:34 +02:00
pvr: support VK_EXT_non_seamless_cube_map
When running GLES2 conformance tests with Zink on the PowerVR driver, I found that the PowerVR driver has the same kind of weird behavior of not ignoreing wrap mode for seamless cubes with Apple AGX (See !21978 for the description of the quirk on AGX). As GLES2 exposes non-seamless cubes, exposing non-seamless cube support at PowerVR help seems to help lot about these GLES2 tests. Implementing full GLES 3 and relying on the workaround for AGX is another choice, but it's still too far. Implementing non-seamless cube seems to be as easy as setting a bit in the sampler control word, so do it. Signed-off-by: Icenowy Zheng <zhengxingda@iscas.ac.cn> Reviewed-by: Simon Perretta <simon.perretta@imgtec.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40660>
This commit is contained in:
parent
468113efd4
commit
71880a2911
2 changed files with 8 additions and 1 deletions
|
|
@ -198,7 +198,10 @@ VkResult PVR_PER_ARCH(CreateSampler)(VkDevice _device,
|
|||
}
|
||||
}
|
||||
|
||||
pvr_csb_pack (&sampler->descriptor.words[1], TEXSTATE_SAMPLER_WORD1, word) {}
|
||||
pvr_csb_pack (&sampler->descriptor.words[1], TEXSTATE_SAMPLER_WORD1, word) {
|
||||
word.cemedge_dontfilter =
|
||||
(pCreateInfo->flags & VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT);
|
||||
}
|
||||
|
||||
#ifndef NDEBUG
|
||||
/* YUV plane addresses are stored in the sampler on rogue. We need to add
|
||||
|
|
|
|||
|
|
@ -189,6 +189,7 @@ static void pvr_physical_device_get_supported_extensions(
|
|||
.EXT_index_type_uint8 = false,
|
||||
.EXT_line_rasterization = true,
|
||||
.EXT_map_memory_placed = true,
|
||||
.EXT_non_seamless_cube_map = true,
|
||||
.EXT_physical_device_drm = true,
|
||||
.EXT_private_data = true,
|
||||
.EXT_provoking_vertex = true,
|
||||
|
|
@ -411,6 +412,9 @@ static void pvr_physical_device_get_supported_features(
|
|||
.memoryMapRangePlaced = false,
|
||||
.memoryUnmapReserve = true,
|
||||
|
||||
/* VK_EXT_non_seamless_cube_map */
|
||||
.nonSeamlessCubeMap = true,
|
||||
|
||||
/* Vulkan 1.3 / VK_EXT_private_data */
|
||||
.privateData = true,
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue