shader/registry: Cache tessellation state
This commit is contained in:
parent
0528be5c92
commit
66a8a3e887
@ -48,7 +48,7 @@ struct BindlessSamplerKey {
|
||||
Tegra::Engines::SamplerDescriptor sampler;
|
||||
};
|
||||
|
||||
constexpr u32 NativeVersion = 17;
|
||||
constexpr u32 NativeVersion = 18;
|
||||
|
||||
ShaderCacheVersionHash GetShaderCacheVersionHash() {
|
||||
ShaderCacheVersionHash hash{};
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user