diff options
| author | Fernando Sahmkow <fsahmkow27@gmail.com> | 2019-09-15 14:25:07 -0400 |
|---|---|---|
| committer | FernandoS27 <fsahmkow27@gmail.com> | 2019-09-19 11:41:29 -0400 |
| commit | 7606da5611b5626790e99b4387e033eaea20c2cb (patch) | |
| tree | 1ce0273ad940c847b6fb4d1832de579f069d3615 /src/video_core/shader | |
| parent | ba02d564f8a0b0167b96f247b6ad9d2bde05b6c8 (diff) | |
VideoCore: Corrections to the MME Inliner and removal of hacky instance management.
Diffstat (limited to 'src/video_core/shader')
| -rw-r--r-- | src/video_core/shader/shader_ir.cpp | 12 | ||||
| -rw-r--r-- | src/video_core/shader/shader_ir.h | 10 |
2 files changed, 22 insertions, 0 deletions
diff --git a/src/video_core/shader/shader_ir.cpp b/src/video_core/shader/shader_ir.cpp index bbbab0bca..2c357f310 100644 --- a/src/video_core/shader/shader_ir.cpp +++ b/src/video_core/shader/shader_ir.cpp @@ -114,6 +114,18 @@ Node ShaderIR::GetOutputAttribute(Attribute::Index index, u64 element, Node buff break; } } + if (index == Attribute::Index::TessCoordInstanceIDVertexID) { + switch (element) { + case 2: + uses_instance_id = true; + break; + case 3: + uses_vertex_id = true; + break; + default: + break; + } + } if (index == Attribute::Index::ClipDistances0123 || index == Attribute::Index::ClipDistances4567) { const auto clip_index = diff --git a/src/video_core/shader/shader_ir.h b/src/video_core/shader/shader_ir.h index 6aed9bb84..2f03d83ba 100644 --- a/src/video_core/shader/shader_ir.h +++ b/src/video_core/shader/shader_ir.h @@ -124,6 +124,14 @@ public: return uses_point_size; } + bool UsesInstanceId() const { + return uses_instance_id; + } + + bool UsesVertexId() const { + return uses_vertex_id; + } + bool HasPhysicalAttributes() const { return uses_physical_attributes; } @@ -373,6 +381,8 @@ private: bool uses_viewport_index{}; bool uses_point_size{}; bool uses_physical_attributes{}; // Shader uses AL2P or physical attribute read/writes + bool uses_instance_id{}; + bool uses_vertex_id{}; Tegra::Shader::Header header; }; |
