Browse Source
maxwell_to_vk: Implement more primitive topologies
Add an extra argument to query device capabilities in the future. The
intention behind this is to use native quads, quad strips, line loops
and polygons if these are released for Vulkan.
pull/15/merge
ReinUsesLisp
6 years ago
No known key found for this signature in database
GPG Key ID: 2DFC508897B39CFE
2 changed files with
11 additions and
2 deletions
src/video_core/renderer_vulkan/maxwell_to_vk.cpp
src/video_core/renderer_vulkan/maxwell_to_vk.h
@ -221,7 +221,8 @@ vk::ShaderStageFlagBits ShaderStage(Tegra::Engines::ShaderType stage) {
return { } ;
}
vk : : PrimitiveTopology PrimitiveTopology ( Maxwell : : PrimitiveTopology topology ) {
vk : : PrimitiveTopology PrimitiveTopology ( [[maybe_unused]] const VKDevice & device ,
Maxwell : : PrimitiveTopology topology ) {
switch ( topology ) {
case Maxwell : : PrimitiveTopology : : Points :
return vk : : PrimitiveTopology : : ePointList ;
@ -233,6 +234,13 @@ vk::PrimitiveTopology PrimitiveTopology(Maxwell::PrimitiveTopology topology) {
return vk : : PrimitiveTopology : : eTriangleList ;
case Maxwell : : PrimitiveTopology : : TriangleStrip :
return vk : : PrimitiveTopology : : eTriangleStrip ;
case Maxwell : : PrimitiveTopology : : TriangleFan :
return vk : : PrimitiveTopology : : eTriangleFan ;
case Maxwell : : PrimitiveTopology : : Quads :
// TODO(Rodrigo): Use VK_PRIMITIVE_TOPOLOGY_QUAD_LIST_EXT whenever it releases
return vk : : PrimitiveTopology : : eTriangleList ;
case Maxwell : : PrimitiveTopology : : Patches :
return vk : : PrimitiveTopology : : ePatchList ;
default :
UNIMPLEMENTED_MSG ( " Unimplemented topology={} " , static_cast < u32 > ( topology ) ) ;
return { } ;
@ -35,7 +35,8 @@ std::pair<vk::Format, bool> SurfaceFormat(const VKDevice& device, FormatType for
vk : : ShaderStageFlagBits ShaderStage ( Tegra : : Engines : : ShaderType stage ) ;
vk : : PrimitiveTopology PrimitiveTopology ( Maxwell : : PrimitiveTopology topology ) ;
vk : : PrimitiveTopology PrimitiveTopology ( const VKDevice & device ,
Maxwell : : PrimitiveTopology topology ) ;
vk : : Format VertexFormat ( Maxwell : : VertexAttribute : : Type type , Maxwell : : VertexAttribute : : Size size ) ;