summaryrefslogtreecommitdiff
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | | | | | | | shader_ir: std::move Node instance where applicableGravatar Lioncash2019-07-164-60/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These are std::shared_ptr instances underneath the hood, which means copying them isn't as cheap as a regular pointer. Particularly so on weakly-ordered systems. This avoids atomic reference count increments and decrements where they aren't necessary for the core set of operations.
| * | | | | | | | | | shader_ir: Rename Get/SetTemporal to Get/SetTemporaryGravatar Lioncash2019-07-165-36/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is more accurate in terms of describing what the functions are actually doing. Temporal relates to time, not the setting of a temporary itself.
| * | | | | | | | | | shader_ir: Remove unused includesGravatar Lioncash2019-07-161-3/+0
| | |_|_|/ / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | Removes unnecessary header dependencies.
* | | | | | | | | | Kernel: Downgrade WaitForAddress and SignalToAddress messages to Trace.Gravatar Fernando Sahmkow2019-07-171-4/+4
| |_|/ / / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This messages were originally set as warnning since few games used these svcs and it was needed for debugging. This is no longer the case.
* | | | | | | | | Merge pull request #2740 from lioncash/braGravatar Fernando Sahmkow2019-07-171-1/+1
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | shader/decode/other: Correct branch indirect argument within BRA handling
| * | | | | | | | | shader/decode/other: Correct branch indirect argument within BRA handlingGravatar Lioncash2019-07-161-1/+1
| | |_|/ / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This appears to have been a copy/paste error introduced within 8a6fc529a968e007f01464abadd32f9b5eb0a26c
* | | | | | | | | Merge pull request #2726 from lioncash/accessGravatar Rodrigo Locatti2019-07-172-7/+6
|\ \ \ \ \ \ \ \ \ | |_|/ / / / / / / |/| | | | | | | | core: Remove CurrentArmInterface() global accessor
| * | | | | | | | core: Remove CurrentArmInterface() global accessorGravatar Lioncash2019-07-122-7/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replaces the final usage of the global accessor function and removes it. Removes one more enabler of global state.
* | | | | | | | | Merge pull request #2565 from ReinUsesLisp/track-indirectGravatar Fernando Sahmkow2019-07-166-35/+36
|\ \ \ \ \ \ \ \ \ | |_|/ / / / / / / |/| | | | | | | | shader/track: Track indirect buffers
| * | | | | | | | shader: Allow tracking of indirect buffers without variable offsetGravatar ReinUsesLisp2019-07-146-35/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While changing this code, simplify tracking code to allow returning the base address node, this way callers don't have to manually rebuild it on each invocation.
* | | | | | | | | Merge pull request #2695 from ReinUsesLisp/layer-viewportGravatar Fernando Sahmkow2019-07-1510-40/+137
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | gl_shader_decompiler: Implement gl_ViewportIndex and gl_Layer in vertex shaders
| * | | | | | | | | gl_shader_decompiler: Fix gl_PointSize redeclarationGravatar ReinUsesLisp2019-07-111-1/+1
| | | | | | | | | |
| * | | | | | | | | gl_shader_decompiler: Fix conditional usage of ↵Gravatar ReinUsesLisp2019-07-111-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GL_ARB_shader_viewport_layer_array
| * | | | | | | | | gl_shader_decompiler: Implement gl_ViewportIndex and gl_Layer in vertex shadersGravatar ReinUsesLisp2019-07-0710-40/+136
| | |_|_|_|_|/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit implements gl_ViewportIndex and gl_Layer in vertex and geometry shaders. In the case it's used in a vertex shader, it requires ARB_shader_viewport_layer_array. This extension is available on AMD and Nvidia devices (mesa and proprietary drivers), but not available on Intel on any platform. At the moment of writing this description I don't know if this is a hardware limitation or a driver limitation. In the case that ARB_shader_viewport_layer_array is not available, writes to these registers on a vertex shader are ignored, with the appropriate logging.
* | | | | | | | | Merge pull request #2705 from FernandoS27/tex-cache-fixesGravatar bunnei2019-07-147-22/+58
|\ \ \ \ \ \ \ \ \ | |_|/ / / / / / / |/| | | | | | | | GPU: Fixes to Texture Cache and Include Microprofiles for GL State/BufferCopy/Macro Interpreter
| * | | | | | | | Texture_Cache: Address FeedbackGravatar Fernando Sahmkow2019-07-143-13/+17
| | | | | | | | |
| * | | | | | | | Texture_Cache: Remove some unprecise fallback case and clang formatGravatar Fernando Sahmkow2019-07-142-13/+5
| | | | | | | | |
| * | | | | | | | Texture_Cache: Force Framebuffer reset if an active render target is ↵Gravatar Fernando Sahmkow2019-07-143-10/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | unregistered.
| * | | | | | | | GPU: Add a microprofile for macro interpreterGravatar Fernando Sahmkow2019-07-142-1/+6
| | | | | | | | |
| * | | | | | | | GL_State: Add a microprofile timer to OpenGL state.Gravatar Fernando Sahmkow2019-07-141-0/+4
| | | | | | | | |
| * | | | | | | | Gl_Texture_Cache: Measure Buffer Copy TimesGravatar Fernando Sahmkow2019-07-141-0/+2
| | | | | | | | |
| * | | | | | | | Texture_Cache: Correct Linear Structural Match.Gravatar Fernando Sahmkow2019-07-141-3/+6
| | | | | | | | |
* | | | | | | | | Merge pull request #2675 from ReinUsesLisp/opengl-buffer-cacheGravatar bunnei2019-07-1416-407/+537
|\ \ \ \ \ \ \ \ \ | |/ / / / / / / / |/| | | | | | | | buffer_cache: Implement a generic buffer cache and its OpenGL backend
| * | | | | | | | buffer_cache: Avoid [[nodiscard]] to make clang-format happyGravatar ReinUsesLisp2019-07-061-5/+4
| | | | | | | | |
| * | | | | | | | buffer_cache: Try to fix MinGW buildGravatar ReinUsesLisp2019-07-061-1/+1
| | | | | | | | |
| * | | | | | | | gl_rasterizer: Fix nullptr dereference on disabled buffersGravatar ReinUsesLisp2019-07-063-5/+5
| | | | | | | | |
| * | | | | | | | gl_rasterizer: Minor style changesGravatar ReinUsesLisp2019-07-064-32/+22
| | | | | | | | |
| * | | | | | | | gl_rasterizer: Fix vertex and index data invalidationsGravatar ReinUsesLisp2019-07-064-8/+67
| | | | | | | | |
| * | | | | | | | gl_buffer_cache: Implement with generic buffer cacheGravatar ReinUsesLisp2019-07-068-291/+92
| | | | | | | | |
| * | | | | | | | buffer_cache: Implement a generic buffer cacheGravatar ReinUsesLisp2019-07-062-0/+301
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implements a templated class with a similar approach to our current generic texture cache. It is designed to be compatible with Vulkan and OpenGL,
| * | | | | | | | gl_buffer_cache: Remove global system gettersGravatar ReinUsesLisp2019-07-063-9/+14
| | | | | | | | |
| * | | | | | | | gl_device: Query SSBO alignmentGravatar ReinUsesLisp2019-07-062-0/+6
| | | | | | | | |
| * | | | | | | | gl_buffer_cache: Implement flushingGravatar ReinUsesLisp2019-07-062-2/+11
| | | | | | | | |
| * | | | | | | | gl_rasterizer: Drop gl_global_cache in favor of gl_buffer_cacheGravatar ReinUsesLisp2019-07-067-206/+35
| | | | | | | | |
| * | | | | | | | gl_buffer_cache: Rework to support internalized buffersGravatar ReinUsesLisp2019-07-063-65/+174
| | | | | | | | |
| * | | | | | | | gl_buffer_cache: Store in CachedBufferEntry the used buffer handleGravatar ReinUsesLisp2019-07-062-23/+30
| | | | | | | | |
| * | | | | | | | gl_buffer_cache: Return used buffer from Upload functionGravatar ReinUsesLisp2019-07-064-36/+35
| | | | | | | | |
| * | | | | | | | gl_rasterizer: Add some commentariesGravatar ReinUsesLisp2019-07-061-0/+5
| | | | | | | | |
| * | | | | | | | gl_rasterizer: Make DrawParameters rasterizer instance constGravatar ReinUsesLisp2019-07-061-1/+1
| | | | | | | | |
| * | | | | | | | gl_rasterizer: Move index buffer uploading to its own methodGravatar ReinUsesLisp2019-07-062-7/+18
| | |_|_|/ / / / | |/| | | | | |
* | | | | | | | Merge pull request #2690 from SciresM/physmem_fixesGravatar Fernando Sahmkow2019-07-1411-45/+507
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Implement MapPhysicalMemory/UnmapPhysicalMemory
| * | | | | | | | Remove unicorn mappings/unmappingsGravatar Michael Scire2019-07-111-19/+0
| | | | | | | | |
| * | | | | | | | prefer system reference over global accessorGravatar Michael Scire2019-07-093-9/+13
| | | | | | | | |
| * | | | | | | | Prevent merging of device mapped memory blocks.Gravatar Michael Scire2019-07-082-1/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This sets the DeviceMapped attribute for GPU-mapped memory blocks, and prevents merging device mapped blocks. This prevents memory mapped from the gpu from having its backing address changed by block coalesce.
| * | | | | | | | Remove unused member function declarationGravatar Michael Scire2019-07-071-9/+0
| | | | | | | | |
| * | | | | | | | physmem: add helpers, cleanup logic.Gravatar Michael Scire2019-07-072-171/+170
| | | | | | | | |
| * | | | | | | | clang-format fixesGravatar Michael Scire2019-07-072-3/+3
| | | | | | | | |
| * | | | | | | | address review commentaryGravatar Michael Scire2019-07-075-36/+42
| | | | | | | | |
| * | | | | | | | Implement MapPhysicalMemory/UnmapPhysicalMemoryGravatar Michael Scire2019-07-078-21/+475
| | |_|_|/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This implements svcMapPhysicalMemory/svcUnmapPhysicalMemory for Yuzu, which can be used to map memory at a desired address by games since 3.0.0. It also properly parses SystemResourceSize from NPDM, and makes information available via svcGetInfo. This is needed for games like Super Smash Bros. and Diablo 3 -- this PR's implementation does not run into the "ASCII reads" issue mentioned in the comments of #2626, which was caused by the following bugs in Yuzu's memory management that this PR also addresses: * Yuzu's memory coalescing does not properly merge blocks. This results in a polluted address space/svcQueryMemory results that would be impossible to replicate on hardware, which can lead to game code making the wrong assumptions about memory layout. * This implements better merging for AllocatedMemoryBlocks. * Yuzu's implementation of svcMirrorMemory unprotected the entire virtual memory range containing the range being mirrored. This could lead to games attempting to map data at that unprotected range/attempting to access that range after yuzu improperly unmapped it. * This PR fixes it by simply calling ReprotectRange instead of Reprotect.
* | | | | | | | Merge pull request #2692 from ReinUsesLisp/tlds-f16Gravatar Fernando Sahmkow2019-07-142-2/+9
|\ \ \ \ \ \ \ \ | |_|_|_|/ / / / |/| | | | | | | shader/texture: Add F16 support for TLDS