Browse Source

maxwell_to_vk: Use VK_EXT_index_type_uint8 when available

pull/15/merge
ReinUsesLisp 6 years ago
parent
commit
f845df8651
No known key found for this signature in database GPG Key ID: 2DFC508897B39CFE
  1. 9
      src/video_core/renderer_vulkan/maxwell_to_vk.cpp
  2. 2
      src/video_core/renderer_vulkan/maxwell_to_vk.h

9
src/video_core/renderer_vulkan/maxwell_to_vk.cpp

@ -308,11 +308,14 @@ vk::CompareOp ComparisonOp(Maxwell::ComparisonOp comparison) {
return {};
}
vk::IndexType IndexFormat(Maxwell::IndexFormat index_format) {
vk::IndexType IndexFormat(const VKDevice& device, Maxwell::IndexFormat index_format) {
switch (index_format) {
case Maxwell::IndexFormat::UnsignedByte:
UNIMPLEMENTED_MSG("Vulkan does not support native u8 index format");
return vk::IndexType::eUint16;
if (!device.IsExtIndexTypeUint8Supported()) {
UNIMPLEMENTED_MSG("Native uint8 indices are not supported on this device");
return vk::IndexType::eUint16;
}
return vk::IndexType::eUint8EXT;
case Maxwell::IndexFormat::UnsignedShort:
return vk::IndexType::eUint16;
case Maxwell::IndexFormat::UnsignedInt:

2
src/video_core/renderer_vulkan/maxwell_to_vk.h

@ -40,7 +40,7 @@ vk::Format VertexFormat(Maxwell::VertexAttribute::Type type, Maxwell::VertexAttr
vk::CompareOp ComparisonOp(Maxwell::ComparisonOp comparison);
vk::IndexType IndexFormat(Maxwell::IndexFormat index_format);
vk::IndexType IndexFormat(const VKDevice& device, Maxwell::IndexFormat index_format);
vk::StencilOp StencilOp(Maxwell::StencilOp stencil_op);

Loading…
Cancel
Save