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:
committed by
Marge Bot
parent
788ae9b601
commit
44431f8ee5
@@ -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,
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
Reference in New Issue
Block a user