Commit Graph

13427 Commits (35f7740b6ca4fac851339bde625206afa88f20cf)

Author SHA1 Message Date
VolcaEM 9e1975a166
Update function name again 5 years ago
VolcaEM 0b86c7eb6a
Update function name (2/2) 5 years ago
VolcaEM f8247826fa
Update function name (1/2) 5 years ago
Fernando Sahmkow 7b893c7963 Common: Fix non-conan build 5 years ago
Morph 72f14ae21f caps_u: Fix GetAlbumContentsFileListForApplication stub 5 years ago
Morph 3017be7855 caps: Use enum classes and check struct sizes on compile time 5 years ago
Morph 02a33feef4 caps: Update copyright headers
Updated to "yuzu Emulator Project"
5 years ago
Kewlan 3eb8efc095 Add a "Mute Audio" hotkey 5 years ago
bunnei c4fe83a7bc
Merge pull request #4159 from ogniK5377/mem-manager-dumb-assert
memory_manager: Remove useless assertion
5 years ago
Rodrigo Locatti 5872fc21fe
Merge pull request #4151 from ReinUsesLisp/gl-invalidations
gl_shader_cache: Avoid use after move for program size
5 years ago
Ameer J ecbc813711
const& to button in button array
Co-authored-by: VolcaEM <63682805+VolcaEM@users.noreply.github.com>
5 years ago
Ameer 3f739514e3 Stop reading loop if error is encountered 5 years ago
VolcaEM 7d08d548a9
Clang-format again 5 years ago
VolcaEM b9f0b9dd06
Clang-format 5 years ago
VolcaEM 6582857356
Remove unnecessary newline 5 years ago
VolcaEM 0f4512291a
Merge branch 'master' into quickstart-faq 5 years ago
VolcaEM a46df40939
Fix typo 2: electric boogaloo 5 years ago
VolcaEM 9e7ac6a009
Use QUrl (2/2) 5 years ago
VolcaEM 5c6adea222
Use QUrl (1/2) 5 years ago
VolcaEM 04497d9e4a
Fix formatting 5 years ago
VolcaEM 5f6e44552a
Fix typo 5 years ago
VolcaEM 57b93395a8
Add "Open Quickstart Guide" and "FAQ" buttons to the Help menu
While we're at it, also refactor the function used by OnOpenModsPage to be compatible with other URLs
5 years ago
bunnei a980b4cbc1
Merge pull request #4136 from VolcaEM/mods
Add a "Open Mods Page" button to the GUI
5 years ago
Rodrigo Locatti ae1f709658
Merge pull request #4160 from ogniK5377/IsASTCSupported-fix
gl_device: Fix IsASTCSupported to scan all targets instead of just GL_TEXTURE_2D
5 years ago
David d11baf8bf8
Merge pull request #4141 from Morph1984/SevenSixAxisSensor
hid: Stub a series of "SevenSixAxisSensor" service commands
5 years ago
David Marcec a927d8be52 gl_device: Fix IsASTCSupported
Other targets were never actually checked
5 years ago
David Marcec 38868e5750 memory_manager: Remove useless assertion
num_pages is an std::size_t. It will always be >= 0
5 years ago
ReinUsesLisp bc8d3b8f82 gl_device: Enable NV_vertex_buffer_unified_memory on Turing devices
Once we make sure not to corrupt Nvidia's driver, we can safely use
resident buffers on Turing devices.

See GitHub pull request #4156
5 years ago
Morph 2c9308954c hid: Stub a series of "SevenSixAxisSensor" service commands
- Used by Captain Toad: Treasure Tracker Update 1.3.0

While we're at it, fix the input parameters for SetIsPalmaAllConnectable and SetPalmaBoostMode
5 years ago
bunnei 0e1268e507
Merge pull request #4105 from ReinUsesLisp/resident-buffers
gl_rasterizer: Use NV_vertex_buffer_unified_memory for vertex buffer robustness
5 years ago
Ameer c18dc9c707 padbutton enum class and struct initiailization 5 years ago
bunnei 2f2df9a4a7
Merge pull request #4083 from Morph1984/B10G11R11F
decode/image: Implement B10G11R11F
5 years ago
David Marcec 510838759f Prevent nullptr dereference on swkbd error case 5 years ago
David Marcec 2f0b322e72 prepo: : Don't read extra buffer from report unless passed
Prepo doesn't always pass a secondary buffer, we assume it always does which leads to a bad read.
5 years ago
Fernando Sahmkow 32343d820d
Merge pull request #4046 from ogniK5377/macro-hle-prod
Add support for HLEing Macros
5 years ago
David Marcec 82ecdd0104 Mark invalid IPC buffers as ASSERT_OR_EXECUTE_MSG
Previously if applications would send faulty buffers(example homebrew) it would lead to us returning uninitalized data. Switching from ASSERT_MSG to ASSERT_OR_EXECUTE_MSG allows us to have a fail safe to prevent crashes but also continue execution without introducing undefined behavior
5 years ago
ReinUsesLisp 32a2dcd415 buffer_cache: Use buffer methods instead of cache virtual methods 5 years ago
ReinUsesLisp 39c97f1b65 gl_stream_buffer: Use InvalidateBufferData instead unmap and map
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).
5 years ago
ReinUsesLisp 41a4090320 gl_rasterizer: Use NV_vertex_buffer_unified_memory for vertex buffer robustness
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.
5 years ago
ReinUsesLisp 32485917ba gl_buffer_cache: Mark buffers as resident
Make stream buffer and cached buffers as resident and query their
address. This allows us to use GPU addresses for several proprietary
Nvidia extensions.
5 years ago
ReinUsesLisp 73fb3a304b gl_device: Expose NV_vertex_buffer_unified_memory except on Turing
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.
5 years ago
ReinUsesLisp 00c66a7289 gl_stream_buffer: Always use a non-coherent buffer 5 years ago
ReinUsesLisp da79ec9565 gl_stream_buffer: Always use persistent memory maps
yuzu no longer supports platforms without persistent maps.
5 years ago
Rodrigo Locatti b66ccaa376
Merge pull request #4129 from Morph1984/texture-shadow-lod-workaround
gl_shader_decompiler: Workaround textureLod when GL_EXT_texture_shadow_lod is not available
5 years ago
David Marcec 380fbd8cb7 Move GetKeyCodeMapImpl to an anonymous namespace 5 years ago
David Marcec f5e2aec422 addressed issues 5 years ago
David Marcec 52340e94ac clear mme draw mode
We already draw, so we can clear it
5 years ago
David Marcec fabdf5d385 Addressed issues 5 years ago
David Marcec 74b4334d51 Fix constbuffer for 0217920100488FF7 5 years ago
David Marcec 6ce5f3120b Macro HLE support 5 years ago
David Marcec e3d2b646e0 Fixed logging output 5 years ago
David Marcec 5226610a15 Implement GetKeyCodeMap & GetKeyCodeMap2
Closes #3919
5 years ago
bunnei 3bab5a5e4a
Merge pull request #4138 from Morph1984/GyroscopeZeroDriftMode
hid: Implement Get/ResetGyroscopeZeroDriftMode
5 years ago
ReinUsesLisp 9f54cd4dad gl_shader_cache: Avoid use after move for program size
All programs had a size of zero due to this bug, skipping invalidations.

While we are at it, remove some unused forward declarations.
5 years ago
bunnei 1d1489da80
Merge pull request #4128 from lioncash/move2
software_keyboard: Eliminate trivial redundant copies
5 years ago
Ameer 743e1f02a0 cleanup check access, read, and factory GetNextInput funcs. Use size rather than magic number 5 years ago
bunnei 15aeae3dd3
Merge pull request #4127 from lioncash/dst-typo
texture_cache: Fix incorrect address used in a DeduceSurface() call
5 years ago
bunnei 60da57b518
Merge pull request #3948 from Morph1984/log-cpu-instructions
main/common: Log/append AVX/FMA to the Host CPU string if available and add AVX512 detection
5 years ago
Ameer d4e07fd95e Fix deallocation of GC Adapter 5 years ago
Morph b8798a995b yuzu_tester: Silence type conversion warning 5 years ago
Morph 45dac6bc5c lm: Silence no return value warning 5 years ago
Ameer 901bc09dd7 Small quality of life indication that mapped button is GC 5 years ago
ReinUsesLisp 39ab33ee1c shader/half_set: Implement HSET2_IMM
Add HSET2_IMM. Due to the complexity of the encoding avoid using
BitField unions and read the relevant bits from the code itself.
This is less error prone.
5 years ago
Ameer fcc23139f6 std::array and const reference passing of non-trivial objects 5 years ago
ameerj f5d2a1e8bd Update src/input_common/main.cpp
Co-authored-by: LC <mathew1800@gmail.com>

update libusb submodule (hopefully windows build error fixed)
5 years ago
VolcaEM e193aa3f53
account: Update function tables and add missing classes (#4145)
* account: Update function tables and add missing classes

* clang-format

* Add missing "public"

* Add missing public again

* Add missing final
5 years ago
Fernando Sahmkow 544b15e8e4 TextureCache: Fix case where layer goes off bound.
The returned layer is expected to be between 0 and the depth of the
surface, anything larger is off bounds.
5 years ago
unknown 8cf6efe677 Reorder variables to comply with the Auzure build pipeline 5 years ago
Morph f2df941e8d arm_dynarmic_64: Log the instruction when an exception is raised 5 years ago
Morph e0af4cdf98 arm_dynarmic_32: Log under Core_ARM instead of HW_GPU 5 years ago
Rodrigo Locatti 406d298457
Merge pull request #4110 from ReinUsesLisp/direct-upload-sets
vk_update_descriptor: Upload descriptor sets data directly
5 years ago
ReinUsesLisp 2f09c7ddd3 renderer_vulkan: Update validation layer name and test before enabling
Update validation layer string to VK_LAYER_KHRONOS_validation.

While we are at it, properly check for available validation layers
before enabling them.
5 years ago
Ameer 28046ae3a9 Tidy up the pointers, use pair over tuple where appropriate 5 years ago
Ameer 0f729ef078 fix for sleep using stl 5 years ago
bunnei 14a1181a97
Merge pull request #4122 from lioncash/hide
video_core: Eliminate some variable shadowing
5 years ago
bunnei c27c76ed43
Merge pull request #4126 from lioncash/noexcept
vulkan/wrapper: Remove noexcept from GetSurfaceCapabilitiesKHR()
5 years ago
bunnei e8855ed0fc
Merge pull request #4134 from FearlessTobi/port-5322
Port citra-emu/citra#5322: "Fix: fatal error CVT1100 when compiling manifest file"
5 years ago
Ameer 46b4461fbb shared_ptr for the GC adapter class, constexpr constants 5 years ago
Ameer 968d631aa5 std::arrays where appropriate, clear q in adapter class, other touch ups 5 years ago
Ameer 5f0fa4cb82 fix include thread 5 years ago
Ameer 121af3646d Singleton GC Adapter class, remove globals, fix naming convention
Fix clang formatting

Manual fix for configure_input_player formatting

Add missing lib usb cmake command
5 years ago
Morph 0235915baa hid: Implement Get/ResetGyroscopeZeroDriftMode
- Used by Captain Toad Treasure Tracker
5 years ago
Ameer c94583d867 Clang Formatting 5 years ago
Ameer 0076a08d04 Cleanup after linter 5 years ago
Ameer 0248614add GC Adapter Implementation 5 years ago
VolcaEM 409fedaf97
Correct function name (2/2) 5 years ago
VolcaEM 182ac8a504
Correct function name (1/2) 5 years ago
VolcaEM 23d57ed4f7
Clang-format 5 years ago
VolcaEM d11b04ed46
Remove unnecessary conversion 5 years ago
VolcaEM 606e833d26
Address review comment by Lioncash
Co-authored-by: LC <mathew1800@gmail.com>
5 years ago
VolcaEM b81af6ae9b
Add a "Open Mods Page" button to the GUI 5 years ago
Morph f77c897b8d gl_shader_decompiler: Enable GL_EXT_texture_shadow_lod if available
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.
5 years ago
Morph 1e65da971b gl_device: Check for GL_EXT_texture_shadow_lod 5 years ago
bunnei f98bf1025f
Merge pull request #4120 from lioncash/arb
gl_arb_decompiler: Avoid several string copies
5 years ago
FearlessTobi a8674a7b86 Fix: fatal error CVT1100 when compiling manifest file
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>
5 years ago
MerryMage c12eb814b4 macro_jit_x64: Use ecx for shift register
shl/shr only accept cl as their second argument
5 years ago
Lioncash ef53b2fd08 texture_cache: Fix incorrect address used in a DeduceSurface() call
Previously the source was being deduced twice in a row.
5 years ago
merry 928e9c09aa
Merge pull request #4125 from lioncash/macro-shift
macro_jit_x64: Amend readability of Compile_ExtractShiftLeftRegister()
5 years ago
merry 2bd903e021
Merge pull request #4123 from lioncash/unused-var
macro_jit_x64: Remove unused variable
5 years ago
Lioncash a5ed0c3df7 software_keyboard: Eliminate trivial redundant copies
We can just make use of moves here to get rid of two redundant copies
5 years ago
Morph 9bb5bf0b2b main: Append AVX and FMA instructions to cpu string
Append AVX and FMA instructions to cpu string if the host cpu supports them
5 years ago
Morph 97ba520434 common/telemetry: Add AVX512 to telemetry 5 years ago
Morph d6474b4aca common/cpu_detect: Add AVX512 detection 5 years ago
Morph 480e1fa987 decode/image: Implement B10G11R11F
- Used by Kirby Star Allies
5 years ago
bunnei 7d1dca4c98
Merge pull request #4099 from MerryMage/macOS-build
Fix compilation on macOS
5 years ago
Lioncash 5865a10885 gl_arb_decompiler: Avoid several string copies
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.
5 years ago
Lioncash a6e5b84d1f vulkan/wrapper: Remove noexcept from GetSurfaceCapabilitiesKHR()
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).
5 years ago
Lioncash 5a4e89b901 macro_jit_x64: Correct readability of Compile_ExtractShiftLeftImmediate()
Previously dst wasn't being used.
5 years ago
Lioncash 140f953b6a macro_jit_x64: Correct readability of Compile_ExtractShiftLeftRegister()
Previously dst wasn't being used.
5 years ago
Lioncash 8ea749c1ca macro_jit_x64: Remove unused variable
Removes a completely unused label and marks another variable as unused,
given it seems like it has potential uses in the future.
5 years ago
Lioncash 479605b3e5 memory_manager: Eliminate variable shadowing
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.
5 years ago
bunnei 9c5ed4408d
Merge pull request #4113 from ogniK5377/boxcat-disable
Fix compilation when not building with boxcat
5 years ago
David Marcec a7fe6dc232 Add translation of "Current Boxcat Events" 5 years ago
Lioncash 811bff009e macro_jit_x64: Eliminate variable shadowing in Compile_ProcessResult()
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.
5 years ago
Lioncash 4514b80b3e buffer_cache: Eliminate local variable shadowing
We can just make use of the instance in the scope above this one.
5 years ago
bunnei 7daea551c0
Merge pull request #4087 from MerryMage/macrojit-inline-Read
macro_jit_x64: Inline Engines::Maxwell3D::GetRegisterValue
5 years ago
MerryMage c6a963c48e input_common/motion_emu: Remove redundant move
Named return value optimization automatically applies here.
5 years ago
MerryMage 8272f53cf9 input_common/keyboard: Remove redundant move
Named return value optimization automatically applies here.
5 years ago
MerryMage 7236393114 mii_model: Remove redundant std::move
Named return value optimization automatically applies here.
5 years ago
David Marcec c7ed7d9427 Fix compilation when not building with boxcat
Fixes compilation when trying to build without boxcat enabled
5 years ago
MerryMage 977ceb4056 macro_jit_x64: Remove unused function Read 5 years ago
bunnei 0f7822acb1
Merge pull request #4080 from ogniK5377/audren-RendererInfo
audren: Implement RendererInfo
5 years ago
bunnei 5a092fb61e
Merge pull request #4090 from MerryMage/macrojit-bugs
macro_jit_x64: Optimization correctness
5 years ago
ReinUsesLisp cf137ea40b vk_rasterizer: Don't preserve contents on full screen clears
There's no need to load contents from the CPU when a clear resets all
the contents of the underlying memory. This is already implemented on
OpenGL and the texture cache.
5 years ago
Rodrigo Locatti de644d506f
Merge pull request #4081 from Morph1984/maxwell-to-gl-vk
maxwell_to_gl/vk: Miscellaneous changes
5 years ago
ReinUsesLisp 7d763f060e vk_update_descriptor: Upload descriptor sets data directly
Instead of copying to a temporary payload before sending the update task
to the worker thread, insert elements to the payload directly.
5 years ago
Fernando Sahmkow 45d29436b3 Tests/HostTiming: Correct GCC Compile error. 5 years ago
Fernando Sahmkow e77ee67bfa Common/Fiber: Address Feedback and Correct Memory leaks. 5 years ago
Fernando Sahmkow b6655aa2e4 Common/Fiber: Implement Rewind on Boost Context. 5 years ago
Fernando Sahmkow 59ce6e6d06 Common/uint128: Correct MSVC Compilation in old versions. 5 years ago
Fernando Sahmkow 18f54f7486 Common/Fiber: Document fiber interexchange. 5 years ago
Fernando Sahmkow 137d862d9b Common/Fiber: Implement Rewinding. 5 years ago
Fernando Sahmkow 41013381d6 Common/Fiber: Additional corrections to f_context. 5 years ago
Fernando Sahmkow 7d2b1a6ec4 Common/Fiber: Correct f_context based Fibers. 5 years ago
Fernando Sahmkow 8f6ffcd5c4 Host Timing: Correct clang format. 5 years ago
Fernando Sahmkow 96b2d8419c HostTiming: Correct rebase and implement AddTicks. 5 years ago
Fernando Sahmkow 49a7e0984a Core/HostTiming: Allow events to be advanced manually. 5 years ago
Fernando Sahmkow 1f7dd36499 Common/Tests: Address Feedback 5 years ago
Fernando Sahmkow 3398f701ee Common: Make MinGW build use Windows Fibers instead of fcontext_t 5 years ago
Fernando Sahmkow 1bd706344e Common/Tests: Clang Format. 5 years ago
Fernando Sahmkow 03e4f5dac4 Common: Correct fcontext fibers. 5 years ago
Fernando Sahmkow e3524d1142 Common: Refactor & Document Wall clock. 5 years ago
Fernando Sahmkow 234b5ff6a9 Common: Implement WallClock Interface and implement a native clock for x64 5 years ago
Fernando Sahmkow 0f8e5a1465 Tests: Add base tests to host timing 5 years ago
Fernando Sahmkow 62e35ffc0e Core: Implement a Host Timer. 5 years ago
Fernando Sahmkow be320a9e10 Common: Polish Fiber class, add comments, asserts and more tests. 5 years ago
Fernando Sahmkow 8d0e3c5422 Tests: Add tests for fibers and refactor/fix Fiber class 5 years ago
Fernando Sahmkow bc266a9d98 Common: Implement a basic Fiber class. 5 years ago
Fernando Sahmkow 13ed9438fb Common: Implement a basic SpinLock class 5 years ago
ReinUsesLisp 778043a44c arm_dynarmic_32: Fix implicit conversion error in SetTPIDR_EL0
On MSVC builds we treat conversion warnings as errors.
5 years ago
MerryMage 778f86989a bootmanager: Remove references to OpenGL for macOS
OpenGL macOS headers definitions clash heavily with each other
5 years ago
MerryMage b19fe55f84 memory_manager: Explicitly specifcy std::min<size_t> 5 years ago
MerryMage 4f09f0aea4 shared_font: Service::NS::EncryptSharedFont takes a size_t& 5 years ago
MerryMage 69f38355ed vk_rasterizer: BindTransformFeedbackBuffersEXT accepts a size of type VkDeviceSize 5 years ago
MerryMage b1eada6079 renderer_vulkan: Fix macOS GetBundleDirectory reference 5 years ago
MerryMage 442e48ef4c memory_util: boost hashes are size_t
* boost::hash_value returns a size_t
* boost::hash_combine takes a size_t& argument
5 years ago
MerryMage 8ae7154541 Rename PAGE_SHIFT to PAGE_BITS
macOS header files #define PAGE_SHIFT
5 years ago
VolcaEM 684dfbf209
Move SHA256Hash to its original position
It's not needed to have it in its previous position anymore
5 years ago
Morph 2f420618ea vk_sampler_cache: Emulate GL_LINEAR/NEAREST minification filters
Emulate GL_LINEAR/NEAREST minification filters using minLod = 0 and maxLod = 0.25 during sampler creation
5 years ago
Morph be660e7749 maxwell_to_vk: Reorder filter cases and correct mipmap_filter=None
maxwell_to_vk: Reorder filtering modes to start with None, then Nearest, then Linear.
maxwell_to_vk: Logs filter modes under UNREACHABLE_MSG instead of UNIMPLEMENTED_MSG, since any unknown filter modes are invalid and not unimplemented.
maxwell_to_vk: Return VK_SAMPLER_MIPMAP_MODE_NEAREST instead of VK_SAMPLER_MIPMAP_MODE_LINEAR when mipmap_filter is None with the description from the VkSamplerCreateInfo(3) man page.
5 years ago
Morph 8868fb745f maxwell_to_gl: Miscellaneous changes
maxwell_to_gl: Log unimplemented features under UNIMPLEMENTED_MSG instead of LOG_ERROR to bring into parity with maxwell_to_vk
maxwell_to_gl: Deduplicate logging in VertexType(), merging them into one.

maxwell_to_gl: Return GL_NEAREST instead of GL_LINEAR if an unknown texture filter mode is encountered.
maxwell_to_gl: Log the mipmap filter mode if an unknown value is passed in.
maxwell_to_gl: Reorder filtering modes to start with None, then Nearest, then Linear.
5 years ago
Rodrigo Locatti edb2114bac
Merge pull request #4092 from Morph1984/image-bindings
gl_device: Reserve 4 image bindings for fragment stage
5 years ago
MerryMage 44f10d9b9f macro_jit_x64: Inline Engines::Maxwell3D::GetRegisterValue 5 years ago
MerryMage 52bcfac116 arm_dynarmic_cp15: Implement CNTPCT 5 years ago
MerryMage 109df7705f arm_dynarmic_cp15: Update CP15 5 years ago
MerryMage 32a127faaa arm_dynarmic_32: InterpreterFallback should never happen 5 years ago
bunnei a8ac99b619
Merge pull request #4086 from MerryMage/abi
xbyak_abi: Cleanup
5 years ago
MerryMage c409722435 macro_jit_x64: Optimization implicitly assumes same destination 5 years ago
MerryMage a6ddd7c382 macro_jit_x64: Should not skip zero registers for certain ALU ops
The code generated for these ALU ops assume src_a and src_b are always valid.
5 years ago
Kaiwen Xu 7a59eeb5be Fix framebuffer size on fractional scaling display. 5 years ago
bunnei b660ef6c8a
Merge pull request #4089 from MerryMage/macrojit-cleanup-1
macro_jit_x64: Cleanup
5 years ago
bunnei 798ec003ce
Merge pull request #4041 from ReinUsesLisp/arb-decomp
gl_arb_decompiler: Implement an assembly shader decompiler
5 years ago
VolcaEM bd9495c9ab
Remove unnecessary pragmas 5 years ago
VolcaEM c0d6162050
Revert IsValidNRO refactor but make it more readable 5 years ago
bunnei f22d02083c
Merge pull request #3966 from Morph1984/hide-internal-resolution-ui
yuzu/frontend: Remove internal resolution option
5 years ago
VolcaEM 4b71bf654d
Update assert string 5 years ago
Morph e2f5d16540 gl_device: Reserve at least 4 image bindings for fragment stage
Due to the limitation of GL_MAX_IMAGE_UNITS being low (8) on Intel's and Nvidia's proprietary drivers, we have to reserve an appropriate amount of image bindings for each of the stages. So far games have been observed to use 4 image bindings on the fragment stage (Kirby Star Allies) and 1 on the vertex stage (TWD series).
No games thus far in my limited testing used more than 4 images concurrently and across all currently active programs.
This fixes shader compilation errors on Kirby Star Allies on OpenGL (GLSL/GLASM)
5 years ago
Rodrigo Locatti 0bd9bc7201
Merge pull request #4066 from ReinUsesLisp/shared-ptr-buf
buffer_cache: Avoid passing references of shared pointers and misc style changes
5 years ago
MerryMage cf0aad7d6a macro_jit_x64: Remove NEXT_PARAMETER
Not required, as PARAMETERS can just be incremented directly.
5 years ago
MerryMage 1799f4e774 macro_jit_x64: Remove unused function Compile_WriteCarry 5 years ago
MerryMage c09a9e5cc7 macro_jit_x64: Select better registers
All registers are now callee-save registers.

RBX and RBP selected for STATE and RESULT because these are most commonly accessed; this is to avoid the REX prefix.
RBP not used for STATE because there are some SIB restrictions, RBX emits smaller code.
5 years ago
MerryMage 79aa7b3ace macro_jit_x64: Remove REGISTERS
Unnecessary since this is just an offset from STATE.
5 years ago
MerryMage 35db6e1c68 macro_jit_x64: Remove JITState::parameters
This can be passed in as an argument instead.
5 years ago
MerryMage 389549b80d macro_jit_x64: Remove METHOD_ADDRESS_64
Unnecessary variable.
5 years ago
MerryMage a6a43a5ae0 macro_jit_x64: Remove RESULT_64
This Reg64 codepath has the exact same behaviour as the Reg32 one.
5 years ago
MerryMage 7c6203dc5e xbyak_abi: Prefer returning a struct to using out parameters in ABI_CalculateFrameSize 5 years ago
MerryMage 36362e9695 xbyak_abi: Register indexes should be unsigned 5 years ago
MerryMage d563017dfe xbyak_abi: Remove *GPS variants of stack manipulation functions 5 years ago
MerryMage 4417770ba9 xbyak_abi: Fix ABI_PushRegistersAndAdjustStack
Pushing GPRs twice.
5 years ago
ReinUsesLisp 6e5d8aac4d video_core/macro_jit_x64: Remove initializer in member variable
Fix build time issues on gcc. Confirmed through asan that avoiding this
initialization is safe.
5 years ago
bunnei 55ebf68636
Merge pull request #4070 from ogniK5377/GetTPCMasks-fix
nvdrv: Fix GetTPCMasks for ioctl3
5 years ago
VolcaEM 39213b1c59
Clang-format again 5 years ago
VolcaEM 198b0fa790
Use consistent variable names 5 years ago
VolcaEM 1520d7865d
Clang-format 5 years ago
VolcaEM 761d206049
Make assert strings consistent 5 years ago
VolcaEM 151a3fe7b3
Attempt to fix crashes in SSBU and refactor IsValidNRO 5 years ago
bunnei 89d11f2268
Merge pull request #4069 from ogniK5377/total-phys-mem
kernel: Account for system resource size for memory usage
5 years ago
bunnei 92021a344c
Merge pull request #4064 from ReinUsesLisp/invalidate-buffers
gl_rasterizer: Mark vertex buffers as dirty after buffer cache invalidation
5 years ago
bunnei c2ea1e1bcb
Merge pull request #4049 from ReinUsesLisp/separate-samplers
shader/texture: Join separate image and sampler pairs offline
5 years ago
David Marcec 42250427c5 audren: Implement RendererInfo
Fixes ZLA softlock
5 years ago
bunnei 5633887569
Merge pull request #3986 from ReinUsesLisp/shader-cache
shader_cache: Implement a generic runtime shader cache
5 years ago
bunnei e1911e5c8b
Merge pull request #4010 from ogniK5377/reserve-always-break
kernel: ResourceLimit::Reserve remove useless while loop
5 years ago
ReinUsesLisp 87011a97f9 gl_arb_decompiler: Implement FSwizzleAdd 5 years ago
ReinUsesLisp a63a0daa5e gl_arb_decompiler: Implement an assembly shader decompiler
Emit code compatible with NV_gpu_program5.
This should emit code compatible with Fermi, but it wasn't tested on
that architecture. Pascal has some issues not present on Turing GPUs.
5 years ago
ReinUsesLisp d89888389d yuzu/configuration: Show assembly shaders check box 5 years ago
David Marcec b15cbf9bcf nvdrv: Fix GetTPCMasks for ioctl3
Fixes animal crossing svcBreak on launch
5 years ago
David Marcec 74ff1db758 kernel: Account for system resource size for memory usage
GetTotalPhysicalMemoryAvailableWithoutSystemResource & GetTotalPhysicalMemoryUsedWithoutSystemResource seem to subtract the resource size from the usage.
5 years ago
bunnei 83e3b77ed7
Merge pull request #4027 from ReinUsesLisp/3d-slices
texture_cache: Implement rendering to 3D textures
5 years ago
ReinUsesLisp 6508cdd003 buffer_cache: Avoid passing references of shared pointers and misc style changes
Instead of using as template argument a shared pointer, use the
underlying type and manage shared pointers explicitly. This can make
removing shared pointers from the cache more easy.

While we are at it, make some misc style changes and general
improvements (like insert_or_assign instead of operator[] + operator=).
5 years ago
ReinUsesLisp 7646f2c21d gl_rasterizer: Mark vertex buffers as dirty after buffer cache invalidation
Vertex buffers bindings become invalid after the stream buffer is
invalidated. We were originally doing this, but it got lost at some
point.

- Fixes Animal Crossing: New Horizons, but it affects everything.
5 years ago
ReinUsesLisp 6e122f0b2c buffer_cache: Return stream buffer invalidation in Map instead of Unmap
We have to invalidate whatever cache is being used before uploading the
data, hence it makes more sense to return this on Map instead of Unmap.
5 years ago
unknown 20a779299a Add game versio to title bar 5 years ago
bunnei 3626254f48
Merge pull request #4040 from ReinUsesLisp/nv-transform-feedback
gl_rasterizer: Use NV_transform_feedback for XFB on assembly shaders
5 years ago
bunnei 98d2461529
Merge pull request #4052 from ReinUsesLisp/debug-output
renderer_opengl: Only enable DEBUG_OUTPUT when graphics debugging is enabled
5 years ago
ReinUsesLisp bd43c05470 texture_cache: Port original code management for 2D vs 3D textures
Handle blits to images as 2D, even when they have block depth.

- Fixes rendering issues on Luigi's Mansion 3
5 years ago
ReinUsesLisp c99f5d405b texture_cache: Simplify blit code 5 years ago
ReinUsesLisp 3c2ae53b4c texture_cache: Handle 3D texture blits with one layer 5 years ago
ReinUsesLisp c95c254f3e texture_cache: Implement rendering to 3D textures
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.
5 years ago
Rodrigo Locatti 2293e8a11a
Merge pull request #4034 from ReinUsesLisp/storage-texels
vk_rasterizer: Implement storage texels and atomic image operations
5 years ago
ReinUsesLisp abcea1bb18 rasterizer_cache: Remove files and includes
The rasterizer cache is no longer used. Each cache has its own generic
implementation optimized for the cached data.
5 years ago
ReinUsesLisp 678f95e4f8 vk_pipeline_cache: Use generic shader cache
Trivial port the generic shader cache to Vulkan.
5 years ago
ReinUsesLisp b96f65b62b gl_shader_cache: Use generic shader cache
Trivially port the generic shader cache to OpenGL.
5 years ago
ReinUsesLisp dc27252352 shader_cache: Implement a generic shader cache
Implement a generic shader cache for fast lookups and invalidations.
Invalidations are cheap but expensive when a shader is invalidated.

Use two mutexes instead of one to avoid locking invalidations for
lookups and vice versa. When a shader has to be removed, lookups are
locked as expected.
5 years ago
Morph 03fad5ebe8 yuzu/frontend: Remove internal resolution option 5 years ago
ReinUsesLisp e78d681a6c gl_device: Black list NVIDIA 443.24 for fast buffer uploads
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.
5 years ago
ReinUsesLisp 354fbe701e renderer_opengl: Only enable DEBUG_OUTPUT when graphics debugging is enabled
Avoids logging when it's not relevant. This can potentially reduce
driver's internal thread overhead.
5 years ago
bunnei 98671b4cfe
Merge pull request #4013 from ReinUsesLisp/skip-no-xfb
vk_rasterizer: Skip transform feedbacks when extension is unavailable
5 years ago
ReinUsesLisp 5b2b6d594c shader/texture: Join separate image and sampler pairs offline
Games using D3D idioms can join images and samplers when a shader
executes, instead of baking them into a combined sampler image. This is
also possible on Vulkan.

One approach to this solution would be to use separate samplers on
Vulkan and leave this unimplemented on OpenGL, but we can't do this
because there's no consistent way of determining which constant buffer
holds a sampler and which one an image. We could in theory find the
first bit and if it's in the TIC area, it's an image; but this falls
apart when an image or sampler handle use an index of zero.

The used approach is to track for a LOP.OR operation (this is done at an
IR level, not at an ISA level), track again the constant buffers used as
source and store this pair. Then, outside of shader execution, join
the sample and image pair with a bitwise or operation.

This approach won't work on games that truly use separate samplers in a
meaningful way. For example, pooling textures in a 2D array and
determining at runtime what sampler to use.

This invalidates OpenGL's disk shader cache :)

- Used mostly by D3D ports to Switch
5 years ago
ReinUsesLisp e1438f8e91 shader/track: Move bindless tracking to a separate function 5 years ago
bunnei 22369df357
Merge pull request #4031 from Morph1984/fix-gs-outputs
gl_shader_decompiler: Fix geometry shader outputs on Intel drivers
5 years ago
bunnei 624def4f38
Merge pull request #4044 from ogniK5377/handle-not-signalled-err
Downgrade "handle not signaled" error to trace
5 years ago
bunnei 34d4abc4f9
Merge pull request #4009 from ogniK5377/macro-jit-prod
video_core: Implement Macro JIT
5 years ago
David Marcec c0d2e3212f Downgrade "handle not signaled" error to trace
clogs logs quite a bit
5 years ago
David Marcec eca3d16e54 Default init labels and use initializer list for macro engine 5 years ago
bunnei 1b64fae912
Merge pull request #4039 from FearlessTobi/port-5376
Port citra-emu/citra#5376: "Actually save the input when clearing/resetting to default"
5 years ago
ReinUsesLisp 3d99b449d3 gl_rasterizer: Use NV_transform_feedback for XFB on assembly shaders
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.
5 years ago
bunnei c647999c61
Merge pull request #4012 from ReinUsesLisp/mipmap-overlaps
texture_cache: Handle overlaps with multiple subresources
5 years ago
David Marcec 411f5527d4 Mark parameters as const 5 years ago
FearlessTobi aaa4822fcb Actually save the input when clearing/resetting to default
Co-Authored-By: xperia64 <xperiancedapps@gmail.com>
5 years ago
bunnei 623b93a2b3
Merge pull request #4014 from ReinUsesLisp/astc-nvidia
gl_device: Avoid devices with CAVEAT_SUPPORT on ASTC
5 years ago
bunnei 23d3e4a3c4
Merge pull request #4032 from VolcaEM/xpad
hid: Stub GetXpadIDs
5 years ago
bunnei 597d8b4bd4
Merge pull request #4006 from ReinUsesLisp/squash-ubos
glsl: Squash constant buffers into a single SSBO when we hit the limit
5 years ago
VolcaEM dfd1badc12
Address review comments 5 years ago
LC 9a0c1456e3
Merge pull request #4016 from ReinUsesLisp/invocation-info
shader/other: Fix hardcoded value in S2R INVOCATION_INFO
5 years ago
LC c5de3c1059
Merge pull request #4033 from ReinUsesLisp/vk-r16ui
maxwell_to_vk: Add R16UI image format
5 years ago
David Marcec 3a20e74f40 Pass by reference instead of copying parameters 5 years ago
ReinUsesLisp 866c1165af vk_shader_decompiler: Implement atomic image operations
Implement atomic operations on images.
On GLSL these are atomicImage* functions (e.g. atomicImageAdd).
5 years ago
ReinUsesLisp 4a6b9a1a71 vk_rasterizer: Implement storage texels
This is the equivalent of an image buffer on OpenGL.

- Used by Octopath Traveler
5 years ago
ReinUsesLisp 3a59e724c9 maxwell_to_vk: Add R16UI image format
- Used by Octopath Traveler
5 years ago
bunnei 4511502ca6
Merge pull request #4001 from ReinUsesLisp/avoid-copies
buffer_cache: Avoid copying twice on certain cases
5 years ago