nvk: Implement VK_EXT_non_seamless_cube_map

Add new bit to VkSamplerCreateFlags and then advertise
VK_EXT_non_seamless_cube_map.

Closes: https://gitlab.freedesktop.org/nouveau/mesa/-/issues/42

Signed-off-by: Rebecca Mckeever <rebecca.mckeever@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
This commit is contained in:
Rebecca Mckeever
2023-01-04 15:17:24 -08:00
committed by Marge Bot
parent 788ae9b601
commit 44431f8ee5
2 changed files with 11 additions and 1 deletions
+6
View File
@@ -203,6 +203,11 @@ nvk_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,
f->indexTypeUint8 = true;
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT: {
VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT *f = (void *)ext;
f->nonSeamlessCubeMap = true;
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT: {
VkPhysicalDeviceProvokingVertexFeaturesEXT *f = (void *)ext;
f->provokingVertexLast = true;
@@ -476,6 +481,7 @@ nvk_get_device_extensions(const struct nvk_physical_device *pdev,
.EXT_image_2d_view_of_3d = true,
.EXT_index_type_uint8 = true,
.EXT_inline_uniform_block = true,
.EXT_non_seamless_cube_map = true,
.EXT_pci_bus_info = true,
.EXT_private_data = true,
.EXT_provoking_vertex = true,
+5 -1
View File
@@ -224,7 +224,11 @@ nvk_CreateSampler(VkDevice _device,
}
assert(device->ctx->eng3d.cls >= KEPLER_A);
SAMP_SET_E(samp, NVA097, 1, CUBEMAP_INTERFACE_FILTERING, AUTO_SPAN_SEAM);
if (pCreateInfo->flags & VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT) {
SAMP_SET_E(samp, NVA097, 1, CUBEMAP_INTERFACE_FILTERING, USE_WRAP);
} else {
SAMP_SET_E(samp, NVA097, 1, CUBEMAP_INTERFACE_FILTERING, AUTO_SPAN_SEAM);
}
if (device->ctx->eng3d.cls >= MAXWELL_B) {
switch (vk_sampler_create_reduction_mode(pCreateInfo)) {