- Jun 24, 2020
-
-
ReinUsesLisp authored
-
ReinUsesLisp authored
Making the stream buffer resident increases GPU usage significantly on some games. This seems to be addressed invalidating the stream buffer with InvalidateBufferData instead of using a Unmap + Map (with invalidation flags).
-
ReinUsesLisp authored
Switch games are allowed to bind less data than what they use in a vertex buffer, the expected behavior here is that these values are read as zero. At the moment of writing this only D3D12, OpenGL and NVN through NV_vertex_buffer_unified_memory support vertex buffer with a size limit. In theory this could be emulated on Vulkan creating a new VkBuffer for each (handle, offset, length) tuple and binding the expected data to it. This is likely going to be slow and memory expensive when used on the vertex buffer and we have to do it on all draws because we can't know without analyzing indices when a game is going to read vertex data out of bounds. This is not a problem on OpenGL's BufferAddressRangeNV because it takes a length parameter, unlike Vulkan's CmdBindVertexBuffers that only takes buffers and offsets (the length is implicit in VkBuffer). It isn't a problem on D3D12 either, because D3D12_VERTEX_BUFFER_VIEW on IASetVertexBuffers takes SizeInBytes as a parameter (although I am not familiar with robustness on D3D12). Currently this only implements buffer ranges for vertex buffers, although indices can also be affected. A KHR_robustness profile is not created, but Nvidia's driver reads out of bound vertex data as zero anyway, this might have to be changed in the future. - Fixes SMO random triangles when capturing an enemy, getting hit, or looking at the environment on certain maps.
-
ReinUsesLisp authored
Make stream buffer and cached buffers as resident and query their address. This allows us to use GPU addresses for several proprietary Nvidia extensions.
-
ReinUsesLisp authored
Expose NV_vertex_buffer_unified_memory when the driver supports it. This commit adds a function the determine if a GL_RENDERER is a Turing GPU. This is required because on Turing GPUs Nvidia's driver crashes when the buffer is marked as resident or on DeleteBuffers. Without a synchronous debug output (single threaded driver), it's likely that the driver will crash in the first blocking call.
-
ReinUsesLisp authored
-
ReinUsesLisp authored
yuzu no longer supports platforms without persistent maps.
-
- Jun 23, 2020
- Jun 22, 2020
- Jun 21, 2020
-
-
Morph authored
- Used by Captain Toad Treasure Tracker
-
Morph authored
Enable GL_EXT_texture_shadow_lod if available. If this extension is not available, such as on Intel/AMD proprietary drivers, use textureGrad as a workaround.
-
Morph authored
-
FearlessTobi authored
Occurs when doing a local compile in MSVC build. The compiler I'm using is as below: Microsoft Visual Studio Community 2019 Preview Version 16.6.0 Preview 5.0 Fixes this error: CVTRES : fatal error CVT1100: duplicate resource. type:MANIFEST, name:1, language:0x0409 LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt I have put 0 since previous name was 1. If have other names in mind, please let me know. Co-Authored-By:
dragios <dragios@users.noreply.github.com>
-
- Jun 20, 2020
-
-
MerryMage authored
shl/shr only accept cl as their second argument
-
Lioncash authored
Previously the source was being deduced twice in a row.
-
Lioncash authored
We can just make use of moves here to get rid of two redundant copies
-
Morph authored
Append AVX and FMA instructions to cpu string if the host cpu supports them
-
Morph authored
-
Morph authored
-
Lioncash authored
Variables that are marked as const cannot have the move constructor invoked when returning from a function (the move constructor requires a non-const variable so it can "steal" the resources from it.
-
Lioncash authored
Check() can throw an exception if the Vulkan result isn't successful. We remove the check so that std::terminate isn't outright called and allows for better debugging (should it ever actually fail).
-
Lioncash authored
Previously dst wasn't being used.
-
Lioncash authored
Previously dst wasn't being used.
-
Lioncash authored
Removes a completely unused label and marks another variable as unused, given it seems like it has potential uses in the future.
-
Lioncash authored
Renames some variables to prevent ones in inner scopes from shadowing outer-scoped variables. The Copy* functions have no shadowing, but we rename them anyways to remain consistent with the other functions.
-
David Marcec authored
-
Lioncash authored
We can reduce the capture scope so that it's not possible for both "reg" variables to clash with one another. While we're at it, we can prevent unnecessary copies while we're at it.
-
Lioncash authored
We can just make use of the instance in the scope above this one.
-
- Jun 19, 2020
-
-
MerryMage authored
Named return value optimization automatically applies here.
-
MerryMage authored
Named return value optimization automatically applies here.
-
MerryMage authored
Named return value optimization automatically applies here.
-
David Marcec authored
Fixes compilation when trying to build without boxcat enabled
-
MerryMage authored
-
- Jun 18, 2020
-
-
ReinUsesLisp authored
Instead of copying to a temporary payload before sending the update task to the worker thread, insert elements to the payload directly.
-
ReinUsesLisp authored
On MSVC builds we treat conversion warnings as errors.
-
MerryMage authored
OpenGL macOS headers definitions clash heavily with each other
-
MerryMage authored
-