diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2020-02-29 08:03:22 +0100 |
---|---|---|
committer | ReinUsesLisp <reinuseslisp@airmail.cc> | 2020-03-09 22:40:07 +0100 |
commit | 66a8a3e88719aaa65a96dd0289e1fb151d199d9b (patch) | |
tree | 63af86085bf2a0b98023aae5ba3982fa82998f99 /src/video_core/shader | |
parent | shader/registry: Store graphics and compute metadata (diff) | |
download | yuzu-66a8a3e88719aaa65a96dd0289e1fb151d199d9b.tar yuzu-66a8a3e88719aaa65a96dd0289e1fb151d199d9b.tar.gz yuzu-66a8a3e88719aaa65a96dd0289e1fb151d199d9b.tar.bz2 yuzu-66a8a3e88719aaa65a96dd0289e1fb151d199d9b.tar.lz yuzu-66a8a3e88719aaa65a96dd0289e1fb151d199d9b.tar.xz yuzu-66a8a3e88719aaa65a96dd0289e1fb151d199d9b.tar.zst yuzu-66a8a3e88719aaa65a96dd0289e1fb151d199d9b.zip |
Diffstat (limited to 'src/video_core/shader')
-rw-r--r-- | src/video_core/shader/registry.cpp | 3 | ||||
-rw-r--r-- | src/video_core/shader/registry.h | 8 |
2 files changed, 9 insertions, 2 deletions
diff --git a/src/video_core/shader/registry.cpp b/src/video_core/shader/registry.cpp index dc2d3dce3..90dfab293 100644 --- a/src/video_core/shader/registry.cpp +++ b/src/video_core/shader/registry.cpp @@ -27,6 +27,9 @@ GraphicsInfo MakeGraphicsInfo(ShaderType shader_stage, ConstBufferEngineInterfac GraphicsInfo info; info.primitive_topology = graphics.regs.draw.topology; + info.tessellation_primitive = graphics.regs.tess_mode.prim; + info.tessellation_spacing = graphics.regs.tess_mode.spacing; + info.tessellation_clockwise = graphics.regs.tess_mode.cw; return info; } diff --git a/src/video_core/shader/registry.h b/src/video_core/shader/registry.h index c1a04ea02..7b7fad3d1 100644 --- a/src/video_core/shader/registry.h +++ b/src/video_core/shader/registry.h @@ -26,15 +26,19 @@ using BindlessSamplerMap = struct GraphicsInfo { Tegra::Engines::Maxwell3D::Regs::PrimitiveTopology primitive_topology{}; + Tegra::Engines::Maxwell3D::Regs::TessellationPrimitive tessellation_primitive{}; + Tegra::Engines::Maxwell3D::Regs::TessellationSpacing tessellation_spacing{}; + bool tessellation_clockwise = false; }; -static_assert(std::is_trivially_copyable_v<GraphicsInfo>); +static_assert(std::is_trivially_copyable_v<GraphicsInfo> && + std::is_standard_layout_v<GraphicsInfo>); struct ComputeInfo { std::array<u32, 3> workgroup_size{}; u32 shared_memory_size_in_words = 0; u32 local_memory_size_in_words = 0; }; -static_assert(std::is_trivially_copyable_v<ComputeInfo>); +static_assert(std::is_trivially_copyable_v<ComputeInfo> && std::is_standard_layout_v<ComputeInfo>); struct SerializedRegistryInfo { VideoCore::GuestDriverProfile guest_driver_profile; |