diff options
Diffstat (limited to 'src/video_core')
| -rw-r--r-- | src/video_core/gpu.cpp | 20 | ||||
| -rw-r--r-- | src/video_core/gpu.h | 9 | 
2 files changed, 15 insertions, 14 deletions
| diff --git a/src/video_core/gpu.cpp b/src/video_core/gpu.cpp index 1b4975498..6cb5fd4e1 100644 --- a/src/video_core/gpu.cpp +++ b/src/video_core/gpu.cpp @@ -143,12 +143,12 @@ enum class BufferMethods {      NotifyIntr = 0x8,      WrcacheFlush = 0x9,      Unk28 = 0xA, -    Unk2c = 0xB, +    UnkCacheFlush = 0xB,      RefCnt = 0x14,      SemaphoreAcquire = 0x1A,      SemaphoreRelease = 0x1B, -    Unk70 = 0x1C, -    Unk74 = 0x1D, +    FenceValue = 0x1C, +    FenceAction = 0x1D,      Unk78 = 0x1E,      Unk7c = 0x1F,      Yield = 0x20, @@ -194,6 +194,10 @@ void GPU::CallPullerMethod(const MethodCall& method_call) {      case BufferMethods::SemaphoreAddressLow:      case BufferMethods::SemaphoreSequence:      case BufferMethods::RefCnt: +    case BufferMethods::UnkCacheFlush: +    case BufferMethods::WrcacheFlush: +    case BufferMethods::FenceValue: +    case BufferMethods::FenceAction:          break;      case BufferMethods::SemaphoreTrigger: {          ProcessSemaphoreTriggerMethod(); @@ -204,21 +208,11 @@ void GPU::CallPullerMethod(const MethodCall& method_call) {          LOG_ERROR(HW_GPU, "Special puller engine method NotifyIntr not implemented");          break;      } -    case BufferMethods::WrcacheFlush: { -        // TODO(Kmather73): Research and implement this method. -        LOG_ERROR(HW_GPU, "Special puller engine method WrcacheFlush not implemented"); -        break; -    }      case BufferMethods::Unk28: {          // TODO(Kmather73): Research and implement this method.          LOG_ERROR(HW_GPU, "Special puller engine method Unk28 not implemented");          break;      } -    case BufferMethods::Unk2c: { -        // TODO(Kmather73): Research and implement this method. -        LOG_ERROR(HW_GPU, "Special puller engine method Unk2c not implemented"); -        break; -    }      case BufferMethods::SemaphoreAcquire: {          ProcessSemaphoreAcquire();          break; diff --git a/src/video_core/gpu.h b/src/video_core/gpu.h index fe6628923..5a8b1c74a 100644 --- a/src/video_core/gpu.h +++ b/src/video_core/gpu.h @@ -194,7 +194,12 @@ public:                  u32 semaphore_acquire;                  u32 semaphore_release; -                INSERT_PADDING_WORDS(0xE4); +                u32 fence_value; +                union { +                    BitField<4, 4, u32> operation; +                    BitField<8, 8, u32> id; +                } fence_action; +                INSERT_PADDING_WORDS(0xE2);                  // Puller state                  u32 acquire_mode; @@ -274,6 +279,8 @@ ASSERT_REG_POSITION(semaphore_trigger, 0x7);  ASSERT_REG_POSITION(reference_count, 0x14);  ASSERT_REG_POSITION(semaphore_acquire, 0x1A);  ASSERT_REG_POSITION(semaphore_release, 0x1B); +ASSERT_REG_POSITION(fence_value, 0x1C); +ASSERT_REG_POSITION(fence_action, 0x1D);  ASSERT_REG_POSITION(acquire_mode, 0x100);  ASSERT_REG_POSITION(acquire_source, 0x101); | 
