summaryrefslogtreecommitdiff
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* kernel: Account for system resource size for memory usageGravatar David Marcec2020-06-101-2/+4
| | | | GetTotalPhysicalMemoryAvailableWithoutSystemResource & GetTotalPhysicalMemoryUsedWithoutSystemResource seem to subtract the resource size from the usage.
* Merge pull request #4027 from ReinUsesLisp/3d-slicesGravatar bunnei2020-06-0910-131/+205
|\ | | | | texture_cache: Implement rendering to 3D textures
| * texture_cache: Port original code management for 2D vs 3D texturesGravatar ReinUsesLisp2020-06-082-16/+35
| | | | | | | | | | | | Handle blits to images as 2D, even when they have block depth. - Fixes rendering issues on Luigi's Mansion 3
| * texture_cache: Simplify blit codeGravatar ReinUsesLisp2020-06-081-9/+7
| |
| * texture_cache: Handle 3D texture blits with one layerGravatar ReinUsesLisp2020-06-083-5/+10
| |
| * texture_cache: Implement rendering to 3D texturesGravatar ReinUsesLisp2020-06-0810-139/+191
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows rendering to 3D textures with more than one slice. Applications are allowed to render to more than one slice of a texture using gl_Layer from a VTG shader. This also requires reworking how 3D texture collisions are handled, for now, this commit allows rendering to slices but not to miplevels. When a render target attempts to write to a mipmap, we fallback to the previous implementation (copying or flushing as needed). - Fixes color correction 3D textures on UE4 games (rainbow effects). - Allows Xenoblade games to render to 3D textures directly.
* | Merge pull request #4040 from ReinUsesLisp/nv-transform-feedbackGravatar bunnei2020-06-083-1/+96
|\ \ | | | | | | gl_rasterizer: Use NV_transform_feedback for XFB on assembly shaders
| * | gl_rasterizer: Use NV_transform_feedback for XFB on assembly shadersGravatar ReinUsesLisp2020-06-033-1/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | NV_transform_feedback, NV_transform_feedback2 and ARB_transform_feedback3 with NV_transform_feedback interactions allows implementing transform feedbacks as dynamic state. Maxwell implements transform feedbacks as dynamic state, so using these extensions with TransformFeedbackStreamAttribsNV allows us to properly emulate transform feedbacks without having to recompile shaders when the state changes.
* | | Merge pull request #4052 from ReinUsesLisp/debug-outputGravatar bunnei2020-06-081-4/+2
|\ \ \ | |_|/ |/| | renderer_opengl: Only enable DEBUG_OUTPUT when graphics debugging is enabled
| * | renderer_opengl: Only enable DEBUG_OUTPUT when graphics debugging is enabledGravatar ReinUsesLisp2020-06-051-4/+2
| | | | | | | | | | | | | | | Avoids logging when it's not relevant. This can potentially reduce driver's internal thread overhead.
* | | Merge pull request #4034 from ReinUsesLisp/storage-texelsGravatar Rodrigo Locatti2020-06-078-91/+143
|\ \ \ | | | | | | | | vk_rasterizer: Implement storage texels and atomic image operations
| * | | vk_shader_decompiler: Implement atomic image operationsGravatar ReinUsesLisp2020-06-021-40/+24
| | | | | | | | | | | | | | | | | | | | Implement atomic operations on images. On GLSL these are atomicImage* functions (e.g. atomicImageAdd).
| * | | vk_rasterizer: Implement storage texelsGravatar ReinUsesLisp2020-06-028-52/+120
| | | | | | | | | | | | | | | | | | | | | | | | This is the equivalent of an image buffer on OpenGL. - Used by Octopath Traveler
* | | | gl_device: Black list NVIDIA 443.24 for fast buffer uploadsGravatar ReinUsesLisp2020-06-061-2/+10
| |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Skip fast buffer uploads on Nvidia 443.24 Vulkan beta driver on OpenGL. This driver throws the following error when calling BufferSubData or BufferData on buffers that are candidates for fast constant buffer uploads. This is the equivalens to push constants on Vulkan, except that they can access the full buffer. The error: Unknown internal debug message. The NVIDIA OpenGL driver has encountered an out of memory error. This application might behave inconsistently and fail. If this error persists on future drivers, we might have to look deeper into this issue. For now, we can black list it and log it as a temporary solution.
* | | Merge pull request #4013 from ReinUsesLisp/skip-no-xfbGravatar bunnei2020-06-051-0/+7
|\ \ \ | | | | | | | | vk_rasterizer: Skip transform feedbacks when extension is unavailable
| * | | vk_rasterizer: Skip transform feedbacks when extension is unavailableGravatar ReinUsesLisp2020-05-291-0/+7
| | | | | | | | | | | | | | | | | | | | Avoids calling transform feedback procedures when VK_EXT_transform_feedback is not available.
* | | | Merge pull request #4031 from Morph1984/fix-gs-outputsGravatar bunnei2020-06-041-1/+13
|\ \ \ \ | | | | | | | | | | gl_shader_decompiler: Fix geometry shader outputs on Intel drivers
| * | | | gl_shader_decompiler: Declare gl_Layer and gl_ViewportIndex within ↵Gravatar Morph2020-06-011-6/+16
| | | | | | | | | | | | | | | | | | | | gl_PerVertex for vertex and tessellation shaders
| * | | | gl_shader_decompiler: Fix geometry shader outputs for Intel driversGravatar Morph2020-06-011-13/+15
| | | | | | | | | | | | | | | | | | | | On Intel's proprietary drivers, gl_Layer and gl_ViewportIndex are not allowed members of gl_PerVertex block, causing the shader to fail to compile. Fix this by declaring these variables outside of gl_PerVertex.
* | | | | Merge pull request #4044 from ogniK5377/handle-not-signalled-errGravatar bunnei2020-06-041-1/+1
|\ \ \ \ \ | | | | | | | | | | | | Downgrade "handle not signaled" error to trace
| * | | | | Downgrade "handle not signaled" error to traceGravatar David Marcec2020-06-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | clogs logs quite a bit
* | | | | | Merge pull request #4009 from ogniK5377/macro-jit-prodGravatar bunnei2020-06-0415-187/+1042
|\ \ \ \ \ \ | |/ / / / / |/| | | | | video_core: Implement Macro JIT
| * | | | | Default init labels and use initializer list for macro engineGravatar David Marcec2020-06-042-2/+2
| | | | | |
| * | | | | Mark parameters as constGravatar David Marcec2020-06-038-11/+11
| | | | | |
| * | | | | Pass by reference instead of copying parametersGravatar David Marcec2020-06-024-7/+9
| | | | | |
| * | | | | Favor switch case over jump tableGravatar David Marcec2020-05-302-18/+26
| | | | | | | | | | | | | | | | | | | | | | | | Easier to read and will emit a jump table automatically.
| * | | | | Implement macro JITGravatar David Marcec2020-05-3015-189/+1034
| | | | | |
* | | | | | Merge pull request #4039 from FearlessTobi/port-5376Gravatar bunnei2020-06-031-0/+3
|\ \ \ \ \ \ | | | | | | | | | | | | | | Port citra-emu/citra#5376: "Actually save the input when clearing/resetting to default"
| * | | | | | Actually save the input when clearing/resetting to defaultGravatar FearlessTobi2020-06-031-0/+3
| | |_|_|_|/ | |/| | | | | | | | | | | | | | | | Co-Authored-By: xperia64 <xperiancedapps@gmail.com>
* | | | | | Merge pull request #4012 from ReinUsesLisp/mipmap-overlapsGravatar bunnei2020-06-031-28/+43
|\ \ \ \ \ \ | |/ / / / / |/| | | | | texture_cache: Handle overlaps with multiple subresources
| * | | | | texture_cache: More relaxed reconstructionGravatar ReinUsesLisp2020-05-291-13/+9
| | | | | | | | | | | | | | | | | | | | | | | | Only reupload textures when they've not been modified from the GPU.
| * | | | | texture_cache: Only copy textures that were modified from hostGravatar ReinUsesLisp2020-05-291-2/+6
| | | | | |
| * | | | | texture_cache: Reload textures when number of resources mismatchGravatar ReinUsesLisp2020-05-291-0/+9
| | | | | |
| * | | | | texture_cache: Handle overlaps with multiple subresourcesGravatar ReinUsesLisp2020-05-291-27/+33
| | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement more surface reconstruct cases. Allow overlaps with more than one layer and mipmap and copies all of them to the new texture. - Fixes textures moving around objects on Xenoblade games
* | | | | Merge pull request #4014 from ReinUsesLisp/astc-nvidiaGravatar bunnei2020-06-022-8/+19
|\ \ \ \ \ | | | | | | | | | | | | gl_device: Avoid devices with CAVEAT_SUPPORT on ASTC
| * | | | | gl_device: Avoid devices with CAVEAT_SUPPORT on ASTCGravatar ReinUsesLisp2020-05-312-8/+19
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This avoids using Nvidia's ASTC decoder on OpenGL. The last time it was profiled, it was slower than yuzu's decoder. While we are at it, fix a bug in the texture cache when native ASTC is not supported.
* | | | | Merge pull request #4032 from VolcaEM/xpadGravatar bunnei2020-06-022-1/+13
|\ \ \ \ \ | | | | | | | | | | | | hid: Stub GetXpadIDs
| * | | | | Clang-formatGravatar VolcaEM2020-06-011-2/+1
| | | | | |
| * | | | | hid: Stub GetXpadIDsGravatar VolcaEM2020-06-012-1/+14
| | | | | | | | | | | | | | | | | | Allows Minecraft: Nintendo Switch Edition (a.k.a. old Minecraft) to boot and go ingame
* | | | | | Merge pull request #4006 from ReinUsesLisp/squash-ubosGravatar bunnei2020-06-027-79/+173
|\ \ \ \ \ \ | | | | | | | | | | | | | | glsl: Squash constant buffers into a single SSBO when we hit the limit
| * | | | | | glsl: Squash constant buffers into a single SSBO when we hit the limitGravatar ReinUsesLisp2020-05-317-79/+173
| | |_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | Avoids compilation errors at the cost of shader build times and runtime performance when a game hits the limit of uniform buffers we can use.
* | | | | | Merge pull request #4016 from ReinUsesLisp/invocation-infoGravatar LC2020-06-021-1/+1
|\ \ \ \ \ \ | | | | | | | | | | | | | | shader/other: Fix hardcoded value in S2R INVOCATION_INFO
| * | | | | | shader/other: Fix hardcoded value in S2R INVOCATION_INFOGravatar ReinUsesLisp2020-05-301-1/+1
| | |_|/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Geometry shaders built from Nvidia's compiler check for bits[16:23] to be less than or equal to 0 with VSETP to default to a "safe" value of 0x8000'0000 (safe from hardware's perspective). To avoid hitting this path in the shader, return 0x00ff'0000 from S2R INVOCATION_INFO. This seems to be the maximum number of vertices a geometry shader can emit in a primitive.
* | | | | | Merge pull request #4033 from ReinUsesLisp/vk-r16uiGravatar LC2020-06-022-71/+74
|\ \ \ \ \ \ | | | | | | | | | | | | | | maxwell_to_vk: Add R16UI image format
| * | | | | | maxwell_to_vk: Add R16UI image formatGravatar ReinUsesLisp2020-06-022-71/+74
| | |_|_|_|/ | |/| | | | | | | | | | | | | | | | - Used by Octopath Traveler
* | | | | | Merge pull request #4001 from ReinUsesLisp/avoid-copiesGravatar bunnei2020-06-011-17/+23
|\ \ \ \ \ \ | | | | | | | | | | | | | | buffer_cache: Avoid copying twice on certain cases
| * | | | | | buffer_cache: Avoid copying twice on certain casesGravatar ReinUsesLisp2020-05-271-17/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoid copying to a staging buffer on non-granular memory addresses. Add a callable argument to StreamBufferUpload to be able to copy to the staging buffer directly from ReadBlockUnsafe.
* | | | | | | Merge pull request #3998 from ReinUsesLisp/init-3dGravatar bunnei2020-06-011-0/+4
|\ \ \ \ \ \ \ | |_|/ / / / / |/| | | | | | maxwell_3d: Initialize more registers to their expected value
| * | | | | | maxwell_3d: Initialize line widthsGravatar ReinUsesLisp2020-05-271-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Initialize line widths to avoid setting a line width of zero.
| * | | | | | maxwell_3d: Initialize polygon modesGravatar ReinUsesLisp2020-05-271-0/+2
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | NVN expects this to be initialized as Fill, otherwise games that never bind a rasterizer state will log an invalid polygon mode.