diff options
| author | 2019-03-03 23:54:16 -0500 | |
|---|---|---|
| committer | 2019-03-20 22:36:02 -0400 | |
| commit | 22d3dfbcd4c606d40e5ae36970db4661c302859f (patch) | |
| tree | 24bf6fe7420aab7a34be7782bc1830e053b64679 /src/video_core/engines | |
| parent | gpu: Move GPUVAddr definition to common_types. (diff) | |
| download | yuzu-22d3dfbcd4c606d40e5ae36970db4661c302859f.tar.gz yuzu-22d3dfbcd4c606d40e5ae36970db4661c302859f.tar.xz yuzu-22d3dfbcd4c606d40e5ae36970db4661c302859f.zip | |
gpu: Rewrite virtual memory manager using PageTable.
Diffstat (limited to 'src/video_core/engines')
| -rw-r--r-- | src/video_core/engines/kepler_memory.cpp | 2 | ||||
| -rw-r--r-- | src/video_core/engines/maxwell_3d.cpp | 8 |
2 files changed, 5 insertions, 5 deletions
diff --git a/src/video_core/engines/kepler_memory.cpp b/src/video_core/engines/kepler_memory.cpp index 0931b9626..e259bf46b 100644 --- a/src/video_core/engines/kepler_memory.cpp +++ b/src/video_core/engines/kepler_memory.cpp | |||
| @@ -46,7 +46,7 @@ void KeplerMemory::ProcessData(u32 data) { | |||
| 46 | // contain a dirty surface that will have to be written back to memory. | 46 | // contain a dirty surface that will have to be written back to memory. |
| 47 | const GPUVAddr address{regs.dest.Address() + state.write_offset * sizeof(u32)}; | 47 | const GPUVAddr address{regs.dest.Address() + state.write_offset * sizeof(u32)}; |
| 48 | rasterizer.InvalidateRegion(ToCacheAddr(memory_manager.GetPointer(address)), sizeof(u32)); | 48 | rasterizer.InvalidateRegion(ToCacheAddr(memory_manager.GetPointer(address)), sizeof(u32)); |
| 49 | memory_manager.Write32(address, data); | 49 | memory_manager.Write<u32>(address, data); |
| 50 | 50 | ||
| 51 | system.GPU().Maxwell3D().dirty_flags.OnMemoryWrite(); | 51 | system.GPU().Maxwell3D().dirty_flags.OnMemoryWrite(); |
| 52 | 52 | ||
diff --git a/src/video_core/engines/maxwell_3d.cpp b/src/video_core/engines/maxwell_3d.cpp index c5d5be4ef..defcfbd3f 100644 --- a/src/video_core/engines/maxwell_3d.cpp +++ b/src/video_core/engines/maxwell_3d.cpp | |||
| @@ -307,7 +307,7 @@ void Maxwell3D::ProcessQueryGet() { | |||
| 307 | // Write the current query sequence to the sequence address. | 307 | // Write the current query sequence to the sequence address. |
| 308 | // TODO(Subv): Find out what happens if you use a long query type but mark it as a short | 308 | // TODO(Subv): Find out what happens if you use a long query type but mark it as a short |
| 309 | // query. | 309 | // query. |
| 310 | memory_manager.Write32(sequence_address, sequence); | 310 | memory_manager.Write<u32>(sequence_address, sequence); |
| 311 | } else { | 311 | } else { |
| 312 | // Write the 128-bit result structure in long mode. Note: We emulate an infinitely fast | 312 | // Write the 128-bit result structure in long mode. Note: We emulate an infinitely fast |
| 313 | // GPU, this command may actually take a while to complete in real hardware due to GPU | 313 | // GPU, this command may actually take a while to complete in real hardware due to GPU |
| @@ -395,7 +395,7 @@ void Maxwell3D::ProcessCBData(u32 value) { | |||
| 395 | 395 | ||
| 396 | u8* ptr{memory_manager.GetPointer(address)}; | 396 | u8* ptr{memory_manager.GetPointer(address)}; |
| 397 | rasterizer.InvalidateRegion(ToCacheAddr(ptr), sizeof(u32)); | 397 | rasterizer.InvalidateRegion(ToCacheAddr(ptr), sizeof(u32)); |
| 398 | memory_manager.Write32(address, value); | 398 | memory_manager.Write<u32>(address, value); |
| 399 | 399 | ||
| 400 | dirty_flags.OnMemoryWrite(); | 400 | dirty_flags.OnMemoryWrite(); |
| 401 | 401 | ||
| @@ -447,7 +447,7 @@ std::vector<Texture::FullTextureInfo> Maxwell3D::GetStageTextures(Regs::ShaderSt | |||
| 447 | for (GPUVAddr current_texture = tex_info_buffer.address + TextureInfoOffset; | 447 | for (GPUVAddr current_texture = tex_info_buffer.address + TextureInfoOffset; |
| 448 | current_texture < tex_info_buffer_end; current_texture += sizeof(Texture::TextureHandle)) { | 448 | current_texture < tex_info_buffer_end; current_texture += sizeof(Texture::TextureHandle)) { |
| 449 | 449 | ||
| 450 | const Texture::TextureHandle tex_handle{memory_manager.Read32(current_texture)}; | 450 | const Texture::TextureHandle tex_handle{memory_manager.Read<u32>(current_texture)}; |
| 451 | 451 | ||
| 452 | Texture::FullTextureInfo tex_info{}; | 452 | Texture::FullTextureInfo tex_info{}; |
| 453 | // TODO(Subv): Use the shader to determine which textures are actually accessed. | 453 | // TODO(Subv): Use the shader to determine which textures are actually accessed. |
| @@ -482,7 +482,7 @@ Texture::FullTextureInfo Maxwell3D::GetStageTexture(Regs::ShaderStage stage, | |||
| 482 | 482 | ||
| 483 | ASSERT(tex_info_address < tex_info_buffer.address + tex_info_buffer.size); | 483 | ASSERT(tex_info_address < tex_info_buffer.address + tex_info_buffer.size); |
| 484 | 484 | ||
| 485 | const Texture::TextureHandle tex_handle{memory_manager.Read32(tex_info_address)}; | 485 | const Texture::TextureHandle tex_handle{memory_manager.Read<u32>(tex_info_address)}; |
| 486 | 486 | ||
| 487 | Texture::FullTextureInfo tex_info{}; | 487 | Texture::FullTextureInfo tex_info{}; |
| 488 | tex_info.index = static_cast<u32>(offset); | 488 | tex_info.index = static_cast<u32>(offset); |