Maxwell3D: Fix 3D semaphore counter type 0 handling

Counter type 0 actually releases the semaphore payload rather than a constant zero as was previously thought. This is required by Skyrim.
This commit is contained in:
Billy Laws 2022-06-02 21:45:22 +01:00
parent 5c0a31e29f
commit ea89cf8639
2 changed files with 3 additions and 3 deletions

View file

@ -595,8 +595,8 @@ void Maxwell3D::DrawArrays() {
std::optional<u64> Maxwell3D::GetQueryResult() { std::optional<u64> Maxwell3D::GetQueryResult() {
switch (regs.query.query_get.select) { switch (regs.query.query_get.select) {
case Regs::QuerySelect::Zero: case Regs::QuerySelect::Payload:
return 0; return regs.query.query_sequence;
case Regs::QuerySelect::SamplesPassed: case Regs::QuerySelect::SamplesPassed:
// Deferred. // Deferred.
rasterizer->Query(regs.query.QueryAddress(), QueryType::SamplesPassed, rasterizer->Query(regs.query.QueryAddress(), QueryType::SamplesPassed,

View file

@ -93,7 +93,7 @@ public:
}; };
enum class QuerySelect : u32 { enum class QuerySelect : u32 {
Zero = 0, Payload = 0,
TimeElapsed = 2, TimeElapsed = 2,
TransformFeedbackPrimitivesGenerated = 11, TransformFeedbackPrimitivesGenerated = 11,
PrimitivesGenerated = 18, PrimitivesGenerated = 18,