Don't require depthClamp

This commit is contained in:
Billy Laws 2022-10-23 20:49:35 +01:00
parent 9055c98e09
commit b24a8465da
4 changed files with 4 additions and 1 deletions

View File

@ -245,7 +245,6 @@ namespace skyline::gpu {
FEAT_REQ(vk::PhysicalDeviceFeatures2, features.independentBlend); FEAT_REQ(vk::PhysicalDeviceFeatures2, features.independentBlend);
FEAT_REQ(vk::PhysicalDeviceFeatures2, features.shaderImageGatherExtended); FEAT_REQ(vk::PhysicalDeviceFeatures2, features.shaderImageGatherExtended);
FEAT_REQ(vk::PhysicalDeviceFeatures2, features.depthBiasClamp); FEAT_REQ(vk::PhysicalDeviceFeatures2, features.depthBiasClamp);
FEAT_REQ(vk::PhysicalDeviceFeatures2, features.depthClamp);
FEAT_REQ(vk::PhysicalDeviceShaderDrawParametersFeatures, shaderDrawParameters); FEAT_REQ(vk::PhysicalDeviceShaderDrawParametersFeatures, shaderDrawParameters);
#undef FEAT_REQ #undef FEAT_REQ

View File

@ -494,6 +494,8 @@ namespace skyline::gpu::interconnect::maxwell3d {
rasterizationCreateInfo.frontFace = packedState.frontFaceClockwise ? vk::FrontFace::eClockwise : vk::FrontFace::eCounterClockwise; rasterizationCreateInfo.frontFace = packedState.frontFaceClockwise ? vk::FrontFace::eClockwise : vk::FrontFace::eCounterClockwise;
rasterizationCreateInfo.depthBiasEnable = packedState.depthBiasEnable; rasterizationCreateInfo.depthBiasEnable = packedState.depthBiasEnable;
rasterizationCreateInfo.depthClampEnable = packedState.depthClampEnable; rasterizationCreateInfo.depthClampEnable = packedState.depthClampEnable;
if (!ctx.gpu.traits.supportsDepthClamp)
Logger::Warn("Depth clamp used on guest without host support");
rasterizationState.get<vk::PipelineRasterizationProvokingVertexStateCreateInfoEXT>().provokingVertexMode = ConvertProvokingVertex(packedState.provokingVertex); rasterizationState.get<vk::PipelineRasterizationProvokingVertexStateCreateInfoEXT>().provokingVertexMode = ConvertProvokingVertex(packedState.provokingVertex);
constexpr vk::PipelineMultisampleStateCreateInfo multisampleState{ constexpr vk::PipelineMultisampleStateCreateInfo multisampleState{

View File

@ -161,6 +161,7 @@ namespace skyline::gpu {
FEAT_SET(vk::PhysicalDeviceFeatures2, features.fragmentStoresAndAtomics, supportsFragmentStoresAndAtomics) FEAT_SET(vk::PhysicalDeviceFeatures2, features.fragmentStoresAndAtomics, supportsFragmentStoresAndAtomics)
FEAT_SET(vk::PhysicalDeviceFeatures2, features.shaderStorageImageWriteWithoutFormat, supportsShaderStorageImageWriteWithoutFormat) FEAT_SET(vk::PhysicalDeviceFeatures2, features.shaderStorageImageWriteWithoutFormat, supportsShaderStorageImageWriteWithoutFormat)
FEAT_SET(vk::PhysicalDeviceFeatures2, features.wideLines, supportsWideLines) FEAT_SET(vk::PhysicalDeviceFeatures2, features.wideLines, supportsWideLines)
FEAT_SET(vk::PhysicalDeviceFeatures2, features.depthClamp, supportsDepthClamp)
#undef FEAT_SET #undef FEAT_SET

View File

@ -45,6 +45,7 @@ namespace skyline::gpu {
bool supportsShaderStorageImageWriteWithoutFormat{}; //!< If the device supports the 'shaderStorageImageWriteWithoutFormat' Vulkan feature bool supportsShaderStorageImageWriteWithoutFormat{}; //!< If the device supports the 'shaderStorageImageWriteWithoutFormat' Vulkan feature
bool supportsSubgroupVote{}; //!< If subgroup votes are supported in shaders with SPV_KHR_subgroup_vote bool supportsSubgroupVote{}; //!< If subgroup votes are supported in shaders with SPV_KHR_subgroup_vote
bool supportsWideLines{}; //!< If the device supports the 'wideLines' Vulkan feature bool supportsWideLines{}; //!< If the device supports the 'wideLines' Vulkan feature
bool supportsDepthClamp{}; //!< If the device supports the 'depthClamp' Vulkan feature
u32 subgroupSize{}; //!< Size of a subgroup on the host GPU u32 subgroupSize{}; //!< Size of a subgroup on the host GPU
std::bitset<7> bcnSupport{}; //!< Bitmask of BCn texture formats supported, it is ordered as BC1, BC2, BC3, BC4, BC5, BC6H and BC7 std::bitset<7> bcnSupport{}; //!< Bitmask of BCn texture formats supported, it is ordered as BC1, BC2, BC3, BC4, BC5, BC6H and BC7