diff --git a/src/xenia/apu/xaudio2/xaudio2_audio_driver.cc b/src/xenia/apu/xaudio2/xaudio2_audio_driver.cc index e81140463..e3dbdd534 100644 --- a/src/xenia/apu/xaudio2/xaudio2_audio_driver.cc +++ b/src/xenia/apu/xaudio2/xaudio2_audio_driver.cc @@ -26,7 +26,9 @@ public: void OnStreamEnd() {} void OnVoiceProcessingPassEnd() {} void OnVoiceProcessingPassStart(uint32_t samples_required) {} - void OnBufferEnd(void* context); + void OnBufferEnd(void* context) { + SetEvent(wait_handle_); + } void OnBufferStart(void* context) {} void OnLoopEnd(void* context) {} void OnVoiceError(void* context, HRESULT result) {} @@ -35,10 +37,6 @@ private: HANDLE wait_handle_; }; -void XAudio2AudioDriver::VoiceCallback::OnBufferEnd(void* context) { - SetEvent(wait_handle_); -} - XAudio2AudioDriver::XAudio2AudioDriver(Emulator* emulator, HANDLE wait) : audio_(0), mastering_voice_(0), pcm_voice_(0), wait_handle_(wait), voice_callback_(0), diff --git a/src/xenia/gpu/graphics_system.cc b/src/xenia/gpu/graphics_system.cc index b1c0eb2d0..acc587b81 100644 --- a/src/xenia/gpu/graphics_system.cc +++ b/src/xenia/gpu/graphics_system.cc @@ -172,6 +172,9 @@ void GraphicsSystem::WriteRegister(uint64_t addr, uint64_t value) { case 0x0714: // CP_RB_WPTR command_processor_->UpdateWritePointer((uint32_t)value); break; + case 0x6110: // ? swap related? + XELOGW("Unimplemented GPU register %.4X write: %.8X", r, value); + return; default: XELOGW("Unknown GPU register %.4X write: %.8X", r, value); break; diff --git a/src/xenia/gpu/texture_resource.cc b/src/xenia/gpu/texture_resource.cc index 67e56ab63..62500c778 100644 --- a/src/xenia/gpu/texture_resource.cc +++ b/src/xenia/gpu/texture_resource.cc @@ -154,11 +154,20 @@ bool TextureResource::Info::Prepare(const xe_gpu_texture_fetch_t& fetch, info.is_compressed = true; break; case FMT_DXT1_AS_16_16_16_16: + // TODO(benvanik): conversion? info.format = DXGI_FORMAT_BC1_UNORM; info.block_size = 4; info.texel_pitch = 8; info.is_compressed = true; break; + case FMT_DXT2_3_AS_16_16_16_16: + case FMT_DXT4_5_AS_16_16_16_16: + // TODO(benvanik): conversion? + info.format = DXGI_FORMAT_BC3_UNORM; + info.block_size = 4; + info.texel_pitch = 16; + info.is_compressed = true; + break; case FMT_1_REVERSE: case FMT_1: case FMT_5_6_5: @@ -199,8 +208,6 @@ bool TextureResource::Info::Prepare(const xe_gpu_texture_fetch_t& fetch, case FMT_16_MPEG_INTERLACED: case FMT_16_16_MPEG_INTERLACED: case FMT_DXN: - case FMT_DXT2_3_AS_16_16_16_16: - case FMT_DXT4_5_AS_16_16_16_16: case FMT_2_10_10_10_AS_16_16_16_16: case FMT_10_11_11_AS_16_16_16_16: case FMT_11_11_10_AS_16_16_16_16: