summaryrefslogtreecommitdiffstats
path: root/src/video_core/engines/maxwell_3d.h
diff options
context:
space:
mode:
authorFernando Sahmkow <fsahmkow27@gmail.com>2020-01-28 03:48:15 +0100
committerFernandoS27 <fsahmkow27@gmail.com>2020-02-10 15:41:43 +0100
commit0cb3bcfbb7081456dbe8bbe262350f85c7ebf3f7 (patch)
tree7055ddb4e7020d57266fb95e94fb826d1144cda3 /src/video_core/engines/maxwell_3d.h
parentMerge pull request #3372 from ReinUsesLisp/fix-back-stencil (diff)
downloadyuzu-0cb3bcfbb7081456dbe8bbe262350f85c7ebf3f7.tar
yuzu-0cb3bcfbb7081456dbe8bbe262350f85c7ebf3f7.tar.gz
yuzu-0cb3bcfbb7081456dbe8bbe262350f85c7ebf3f7.tar.bz2
yuzu-0cb3bcfbb7081456dbe8bbe262350f85c7ebf3f7.tar.lz
yuzu-0cb3bcfbb7081456dbe8bbe262350f85c7ebf3f7.tar.xz
yuzu-0cb3bcfbb7081456dbe8bbe262350f85c7ebf3f7.tar.zst
yuzu-0cb3bcfbb7081456dbe8bbe262350f85c7ebf3f7.zip
Diffstat (limited to 'src/video_core/engines/maxwell_3d.h')
-rw-r--r--src/video_core/engines/maxwell_3d.h16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/video_core/engines/maxwell_3d.h b/src/video_core/engines/maxwell_3d.h
index e437bacb7..78e055765 100644
--- a/src/video_core/engines/maxwell_3d.h
+++ b/src/video_core/engines/maxwell_3d.h
@@ -71,12 +71,11 @@ public:
static constexpr std::size_t MaxConstBuffers = 18;
static constexpr std::size_t MaxConstBufferSize = 0x10000;
- enum class QueryMode : u32 {
- Write = 0,
- Sync = 1,
- // TODO(Subv): It is currently unknown what the difference between method 2 and method 0
- // is.
- Write2 = 2,
+ enum class QueryOperation : u32 {
+ Release = 0,
+ Acquire = 1,
+ Counter = 2,
+ Trap = 3,
};
enum class QueryUnit : u32 {
@@ -1077,7 +1076,7 @@ public:
u32 query_sequence;
union {
u32 raw;
- BitField<0, 2, QueryMode> mode;
+ BitField<0, 2, QueryOperation> operation;
BitField<4, 1, u32> fence;
BitField<12, 4, QueryUnit> unit;
BitField<16, 1, QuerySyncCondition> sync_cond;
@@ -1409,6 +1408,9 @@ private:
/// Handles a write to the QUERY_GET register.
void ProcessQueryGet();
+ // Writes the query result accordingly
+ void StampQueryResult(u64 payload, bool long_query);
+
// Handles Conditional Rendering
void ProcessQueryCondition();