ameerj
14612971ef
vk_state_tracker: Remove unused function
2021-09-12 15:28:24 -04:00
Morph
9191db654d
FS: Mark recursive CreateDirectory as inaccurate and temporary
2021-09-12 14:06:01 -04:00
Morph
b4d9be4aae
Merge pull request #6948 from ameerj/amd-warp-fix
...
shaders: Fix warp instructions on 64-thread warp devices
2021-09-12 13:53:29 -04:00
Morph
26734981cf
Merge pull request #6975 from ogniK5377/acc-async-ctx
...
account: EnsureTokenIdCacheAsync
2021-09-12 12:03:10 -04:00
Morph
26b459393d
Merge pull request #6974 from ogniK5377/fs-recursive-createdir
...
FS: Recursively create directories for CreateDirectory
2021-09-12 12:02:39 -04:00
Morph
eb0222d77f
Merge pull request #6997 from ameerj/stop-emulation-confirmation
...
main: Apply confirm exit setting in exit locked scenarios
2021-09-12 12:01:57 -04:00
Morph
f2f9009a9b
Merge pull request #6992 from german77/brains
...
hid/am: Stub SetTouchScreenConfiguration and implement GetNotificationStorageChannelEvent
2021-09-12 12:01:43 -04:00
Morph
4520ae9eed
Merge pull request #6987 from Morph1984/common-error
...
common: Move error handling functions out of common_funcs
2021-09-12 12:01:23 -04:00
Morph
e01b714fd5
Merge pull request #6986 from Morph1984/version-update
...
api_version: Update and add AtmosphereTargetFirmware
2021-09-12 12:01:11 -04:00
ameerj
829fa4c77b
main: Apply confirm exit setting in exit locked scenarios
...
Some titles set an exit lock through HLE, which prompts an exit confirmation when stopping emulation if the system is locked.
This change allows bypassing this confirmation if the setting to confirm exits has been disabled by the user.
2021-09-12 00:31:32 -04:00
Morph
fc29159ac7
shader_environment: Add missing <algorithm> include
2021-09-11 17:19:16 -04:00
Morph
5d3d9560e1
vk_descriptor_pool: Add missing <algorithm> include
2021-09-11 17:19:16 -04:00
Morph
244017d3aa
slot_vector: Add missing <algorithm> include
2021-09-11 17:19:15 -04:00
Morph
421ff5ea79
video_core/memory_manager: Add missing <algorithm> include
2021-09-11 17:19:15 -04:00
Morph
3e49eac2de
kernel: Add missing <functional> include
2021-09-11 17:19:15 -04:00
Morph
b529f4b6b7
file_sys/kernel_executable: Add missing <string> include
2021-09-11 17:19:14 -04:00
Morph
84b969a442
codec: Add missing <string_view> include
2021-09-11 17:19:14 -04:00
Morph
c4801b0599
common_funcs: Replace <algorithm> with <iterator>
2021-09-11 17:19:14 -04:00
Morph
c0ff1dce0b
common: Move error handling to error.cpp/h
...
This allows us to avoid implicitly including <string> every time common_funcs.h is included.
2021-09-11 17:19:14 -04:00
Fernando S
f35f5c5072
Merge pull request #6846 from ameerj/nvdec-gpu-decode
...
nvdec: Add GPU video decoding for all capable drivers and platforms
2021-09-11 23:11:32 +02:00
Fernando S
dc8598b472
Merge pull request #6901 from ameerj/vk-clear-bits
...
vk_rasterizer: Only clear depth/stencil buffers when specified in attachment aspect mask
2021-09-11 22:36:22 +02:00
Fernando S
ecad7e67b7
Merge pull request #6941 from ameerj/swapchain-srgb
...
vk_swapchain: Prefer linear swapchain format when presenting sRGB images
2021-09-11 22:36:03 +02:00
Fernando S
a700249ee6
Merge pull request #6953 from ameerj/anv-semaphore
...
renderer_vulkan: Wait on present semaphore at queue submit
2021-09-11 22:35:52 +02:00
Fernando S
67c075d51d
Merge pull request #6981 from ameerj/nvflinger-hb-format
...
nvflinger: Use external surface format for framebuffer creation
2021-09-11 22:35:25 +02:00
german77
a36409ff16
am: Implement GetNotificationStorageChannelEvent
2021-09-10 12:24:50 -05:00
german77
9847b58137
hid: Stub SetTouchScreenConfiguration
2021-09-10 12:24:28 -05:00
german77
0cea589993
input_common: Enable steam controllers and 8 player support
2021-09-10 00:58:12 -05:00
Morph
e92bc1f091
api_version: Update and add AtmosphereTargetFirmware
2021-09-10 01:10:47 -04:00
bunnei
9a7c619698
Merge pull request #6962 from vonchenplus/spirv_support_legacy_attribute
...
renderer_vulkan: Spirv support glsl legacy attribute
2021-09-08 14:04:44 -07:00
Chloe
82fca3ab45
Addressed issues
...
Co-authored-by: Mai M. <mathew1800@gmail.com>
2021-09-09 03:00:08 +10:00
Chloe Marcec
398b0ce799
Mark is_complete as atomic
2021-09-09 00:10:52 +10:00
Chloe Marcec
dd526c8bf5
Addressed issues
2021-09-09 00:09:04 +10:00
Fernando S
3821e784bc
Merge pull request #6980 from vonchenplus/fix_blend_equation_error
...
Fix blend equation enum error
2021-09-08 11:50:26 +02:00
Ameer J
b9193040cf
Merge pull request #6971 from bunnei/buffer-queue-kevent
...
core: hle: service: buffer_queue: Improve management of KEvent.
2021-09-08 00:34:36 -04:00
Feng Chen
63aba30181
Detail adjustment
2021-09-08 10:30:00 +08:00
Feng Chen
38b28f1c4d
Detail adjustment
2021-09-08 09:53:10 +08:00
Feng Chen
3948edde71
Re-implement get unused location
2021-09-07 13:22:52 +08:00
Feng Chen
bd94ea2f5a
Move attribute related definitions to spirv anonymous namespace
2021-09-07 12:34:35 +08:00
german77
94028da35e
input_common: Add alternative string for joycons
2021-09-06 22:20:19 -05:00
ameerj
3e19187560
nvflinger: Use external surface format for framebuffer creation
...
The format member the IGBPBuffer may not always specify the correct desired format. Using the external format member ensures a valid format is provided when creating the framebuffer.
Fixes homebrew using the wrong framebuffer format.
2021-09-06 23:14:31 -04:00
Ameer J
5eccd5e3c8
Merge pull request #6977 from Moonlacer/master
...
Second part of Golden's PR #6976
2021-09-06 22:58:23 -04:00
Feng Chen
63acf10871
Fix blend equation enum error
2021-09-07 10:12:09 +08:00
Moonlacer
76c8fdfc78
Second part of Golden's PR
2021-09-06 15:25:40 -05:00
Matías Locatti
c80d8c9d11
Rename all shader cache references to pipeline cache
...
After Hades, both OpenGL and Vulkan use a pipeline cache instead of single stages of the graphics pipeline. Renamed the Remove menu entries to match.
2021-09-06 15:53:04 -03:00
Chloe Marcec
0b8d28b62a
address name shadowing with system
2021-09-06 22:13:51 +10:00
Chloe Marcec
e27cb5526b
account: EnsureTokenIdCacheAsync
...
Closes #2547 , #6946
2021-09-06 21:16:21 +10:00
bunnei
54d33383e8
Merge pull request #6965 from bunnei/cpu_manager_jthread
...
core: cpu_manager: Use jthread.
2021-09-06 03:49:14 -07:00
Chloe Marcec
2cf086d244
FS: Recursively create directories for CreateDirectory
...
Originally we only created the parent directory, this caused issues for creating directories which also contained subdirectories, eg `/Folder1/Folder2`
This allows the ultimate mod manager homebrew to at least boot
2021-09-06 19:35:55 +10:00
Feng Chen
dc8967ebcd
Dynamic get unused location
2021-09-06 10:46:03 +08:00
Feng Chen
1aaa6a353b
Implement intput and output fixed fnc textures
2021-09-06 10:36:45 +08:00
bunnei
b690071dd5
core: hle: service: buffer_queue: Improve management of KEvent.
2021-09-04 22:25:46 -07:00
bunnei
a1a415914d
core: hle: service: nvflinger/vi: Improve management of KEvent.
2021-09-03 21:53:00 -07:00
bunnei
14d3f114a5
core: cpu_manager: Use jthread.
2021-09-03 19:05:41 -07:00
Feng Chen
49c66fa4e9
Rename parameters
2021-09-03 23:52:20 +08:00
Feng Chen
b3e5a2f75d
Fix create GraphicsPipelines crash
2021-09-03 22:55:53 +08:00
ameerj
f22d524c39
renderer_vulkan: Wait on present semaphore at queue submit
...
The present semaphore is being signalled by the call to acquire the
swapchain image. This semaphore is meant to be waited on when rendering
to the swapchain image. Currently it is waited on when presenting, but
moving its usage to be waited on in the command buffer submission allows
for proper usage of this semaphore.
Fixes the device lost when launching titles on the Intel Linux Mesa driver.
2021-09-02 13:13:20 -04:00
Feng Chen
a1c9039eae
Add input/output location
2021-09-02 23:34:51 +08:00
bunnei
59cf0848c7
Merge pull request #6900 from ameerj/attr-reorder
...
structured_control_flow: Add DemoteCombinationPass
2021-09-01 17:36:26 -07:00
german77
fab34850ae
common/logging: Add missing include
2021-09-01 19:13:33 -05:00
ameerj
668d936dd2
emit_glsl_warp: Fix shuffle ops for 64-thread warp sizes
2021-08-31 16:11:25 -04:00
ameerj
9302524b8c
emit_glsl_warp: Fix ballot related ops for 64-thread warp sizes
2021-08-31 16:11:25 -04:00
ameerj
c7568d61d2
emit_spirv_warp: Fix shuffle ops for 64-thread warp sizes
2021-08-31 13:40:39 -04:00
ameerj
1bb5fb7e26
emit_spirv_warp: Fix ballot related ops for 64-thread warp sizes
2021-08-31 13:40:12 -04:00
bunnei
f59299a696
Merge pull request #6897 from FernandoS27/pineapple-does-not-belong-in-pizza
...
Project <tentative title>: Rework Garbage Collection.
2021-08-31 09:11:21 -07:00
Feng Chen
b86a4caa20
Add colorfront and txtcoord support
2021-09-01 00:07:25 +08:00
bunnei
fb109913cb
Merge pull request #6928 from ameerj/spirv-get-frontface
...
emit_spirv_context_get_set: Fix Get FrontFace return value
2021-08-30 18:16:31 -07:00
bunnei
dc2d6d0c6b
Merge pull request #6879 from ameerj/decoder-assert
...
vk_blit_screen: Fix non-accelerated texture size calculation
2021-08-30 15:24:04 -07:00
ameerj
8485bb3dcb
structured_control_flow: Skip reordering nested demote branches.
...
Nested demote branches add complexity with combining the condition if it has not been initialized yet. Skip them for the time being.
2021-08-30 11:46:25 -04:00
ameerj
e9a8e011f6
structured_control_flow: Conditionally invoke demote reorder pass
...
This is only needed on select drivers when a fragment shader discards/demotes.
2021-08-30 11:46:24 -04:00
Fernando Sahmkow
133f72c3f4
Garbage Collection: Make it more agressive on high priority mode.
2021-08-29 18:57:17 +02:00
Fernando Sahmkow
129bcd1b85
Garbage Collection: Adress Feedback.
2021-08-29 18:19:53 +02:00
bunnei
c7662fd962
Merge pull request #6905 from Morph1984/nifm-misc
...
nifm/network_interface: Cleanup and populate fields in GetCurrentNetworkProfile
2021-08-29 00:04:58 -07:00
ameerj
584fc3cb71
vulkan_device: Enable VK_KHR_swapchain_mutable_format if available
...
Silences validation errors when creating sRGB image views of linear swapchain images
2021-08-29 02:03:36 -04:00
ameerj
cc38b85948
vk_swapchain: Prefer linear swapchain format when presenting sRGB images
...
Fixes broken sRGB when presenting from a secondary GPU.
2021-08-29 02:03:35 -04:00
bunnei
02a663b4d2
Merge pull request #6921 from ameerj/vp9-unused
...
vp9_types: Remove unusued VP9 info struct members
2021-08-28 22:20:09 -07:00
Morph
e729e010ca
Merge pull request #6927 from german77/ngct
...
ngct: Stub NGCT:U service
2021-08-28 23:03:29 -04:00
Fernando Sahmkow
9a785765d8
Garbage Collection: enable as default, eliminate option.
2021-08-28 17:55:37 +02:00
Fernando Sahmkow
7d22f79cf0
VideoCore: Rework Garbage Collection.
2021-08-28 17:54:12 +02:00
ameerj
8c687b3a91
structured_control_flow: Add DemoteCombinationPass
...
Some drivers misread data when demotes are interleaved in the program. This moves demote branches to be checked at the end of the program.
Fixes "wireframe" issue in Pokemon SwSh on some drivers
2021-08-28 11:35:25 -04:00
german77
b036d9df7d
ngct: Stub NGCT:U service
2021-08-27 14:15:34 -05:00
Morph
88fa692ae6
Revert "logging: Display backtrace on crash"
2021-08-27 04:01:22 -04:00
Morph
43f7dc615e
service: nifm: Populate fields in GetCurrentNetworkProfile
...
Populates the current_address, subnet_mask, and gateway fields from the selected network interface.
2021-08-27 02:10:59 -04:00
Morph
40e406f9d1
service: nifm: Cleanup GetCurrentIpConfigInfo
2021-08-27 02:10:58 -04:00
Morph
b755cdbd57
network_interface: Cleanup code
2021-08-27 02:10:58 -04:00
Morph
2d685e5a51
network_interface: Replace default return value with std::nullopt
2021-08-27 02:10:58 -04:00
ameerj
9b41b19766
emit_spirv_context_get_set: Fix Get FrontFace return value
...
The IR expects GetAttribute to return an F32 value. This case was returning a U32 instead.
2021-08-26 21:37:34 -04:00
bunnei
4ef01eb41e
Merge pull request #6870 from yzct12345/trace-back-stack-back-stack-back
...
logging: Display backtrace on crash
2021-08-26 17:41:14 -07:00
bunnei
5e600cba3a
Revert "kernel: Various improvements to scheduler"
2021-08-25 20:59:28 -07:00
ameerj
8b0a45defd
vp9_types: Minor refactor of VP9 info structs.
2021-08-25 21:42:43 -04:00
ameerj
01ac464999
vp9_types: Remove unused Vp9PictureInfo members
2021-08-25 21:29:22 -04:00
Fernando S
33f28f1cd5
Merge pull request #6919 from ameerj/vk-int8-capability
...
vulkan_device: Add a check for int8 support
2021-08-25 23:46:08 +02:00
Ameer J
ef8eb0cb28
Merge pull request #6894 from FernandoS27/bunneis-left-ear
...
GPU_MemoryManger: Fix GetSubmappedRange.
2021-08-25 16:50:03 -04:00
ameerj
56cabe631b
vulkan_device: Add a check for int8 support
...
Silences validation errors when shaders use int8 without specifying its support to the API
2021-08-24 21:22:41 -04:00
ameerj
0debad63cc
logging: Fix log filter during initialization
...
The log filter was being ignored on initialization due to the logging instance being initialized before the config instance, so the log filter was set to its default value.
This fixes that oversight, along with using descriptive exceptions instead of abort() calls.
2021-08-24 01:32:38 -04:00
Ameer J
b53a87b6b4
Merge pull request #6878 from BreadFish64/optimize-GetHostThreadID
...
kernel: Optimize GetHostThreadID
2021-08-24 00:01:13 -04:00
bunnei
98c2b7a750
Merge pull request #6912 from lioncash/plural
...
CMakeLists: Ensure proper numerusform tags are generated for pluralized translations
2021-08-23 16:40:31 -07:00
bunnei
f3931fe2b5
Merge pull request #6869 from yzct12345/shiny-logs-in-the-fireplace
...
logging: Simplify and make thread-safe
2021-08-22 20:40:18 -07:00
Lioncash
8efa6d4b74
CMakeLists: Ensure proper numerusform tags are generated for pluralized translations
...
If we don't set an explicit source and target language for the base
english translation, then we'll generate an incorrect number of
<numerusform> tags (which Transifex doesn't like).
2021-08-22 11:52:37 -04:00
Morph
d10148b4aa
settings: Amend language_index maximum setting range
...
The maximum is now 17 with the addition of Brazilian Portuguese
2021-08-21 09:43:15 -04:00
ameerj
64369cceca
vk_rasterizer: Only clear depth and stencil buffers when set in attachment aspect mask
...
Silences validation errors for clearing the depth/stencil buffers of framebuffer attachments that were not specified to have depth/stencil usage.
2021-08-21 02:37:15 -04:00
Ameer J
9cff53ec7c
Merge pull request #6888 from v1993/patch-3
...
video_core: eliminate constant ternary
2021-08-21 00:16:18 -04:00
bunnei
018c64c976
Merge pull request #6877 from MerryMage/dyn-ignore-asserts
...
dynarmic: Update and enable DYNARMIC_IGNORE_ASSERTS
2021-08-19 15:53:14 -07:00
Mai M
de6eeaa67a
Merge pull request #6887 from v1993/patch-2
...
SPIR-V: Merge two ifs in EmitGetAttribute
2021-08-19 17:16:37 -04:00
Mai M
7578fdd63b
Merge pull request #6886 from Morph1984/error-code-64
...
applet_error: Fix 64-bit error code conversion
2021-08-19 17:15:49 -04:00
Fernando Sahmkow
c01e168072
GPU_MemoryManger: Fix GetSubmappedRange.
2021-08-19 22:57:22 +02:00
Valeri
e8314deee0
Replace QPoint with QPointF where applicable
...
Previously, floats were implicitly cast to integers
2021-08-19 23:16:58 +03:00
Valeri
35c40cf0aa
qt_software_keyboard: fix copy-paste error
2021-08-19 22:17:15 +03:00
Valeri
42b0e8cadf
video_core: eliminate constant ternary
...
`via_header_index` is already checked above, so it would never be true in this branch
2021-08-19 21:22:05 +03:00
Morph
1c1292b13c
applet_error: Fix 64-bit error code conversion
2021-08-19 13:16:48 -04:00
Valeri
1510efac15
SPIR-V: Merge two ifs in EmitGetAttribute
2021-08-19 20:13:46 +03:00
Valeri
6a1ad26160
Fix crash in logging in CreateStrayLayer
...
It was trying to log value of layer_id which is specifically known not to exist, potentially leading to segfault. Log display_id instead.
2021-08-19 19:33:07 +03:00
Valeri
190e12a072
Fix check is thread current in GetThreadContext
...
Misplaced break made it only check for the first core.
2021-08-19 16:46:30 +03:00
bunnei
7a90ad5238
Merge pull request #6832 from bunnei/scheduler-improvements
...
kernel: Various improvements to scheduler
2021-08-18 15:42:46 -07:00
ameerj
681b194e24
h264: Lower max_num_ref_frames
...
GPU decoding seems to be more picky when it comes to the maximum number of reference frames.
2021-08-16 14:40:53 -04:00
ameerj
82906e26a5
configure_graphics: Add GPU nvdec decoding as an option
...
Some system configurations may see visual regressions or lower performance using GPU decoding compared to CPU decoding. This setting provides the option for users to specify their decoding preference.
Co-Authored-By: yzct12345 <87620833+yzct12345@users.noreply.github.com>
2021-08-16 14:40:53 -04:00
ameerj
7cd52be8c4
codec: Improve libav memory alloc and cleanup
2021-08-16 14:40:53 -04:00
ameerj
5fd82a4ec1
codec: Fallback to CPU decoding if no compatible GPU format is found
2021-08-16 14:40:53 -04:00
lat9nq
3714fd580f
cmake: Add VDPAU and NVDEC support to FFmpeg
...
Adds {h264_,vp9_}{nvdec,vdpau} hwaccels.
2021-08-16 14:40:52 -04:00
ameerj
899cf73819
vk_blit_screen: Fix non-accelerated texture size calculation
...
Addresses the potential OOB access in UnswizzleTexture.
2021-08-16 14:28:10 -04:00
Fernando S
81f7914b19
Merge pull request #6863 from spholz/fix-lan-play
...
Fix LAN Play
2021-08-16 17:10:00 +02:00
BreadFish64
8c4f818e77
kernel: Optimize GetHostThreadID
2021-08-16 07:30:23 -05:00
Sönke Holz
12499a34e6
network_interface: correct formatting
2021-08-16 12:18:19 +02:00
spholz
9701ec5ddf
network_interface: fix mingw-w64 build
2021-08-16 12:06:35 +02:00
Sönke Holz
363236e2c6
network: retrieve subnet mask and gateway info
2021-08-16 10:32:25 +02:00
Merry
891e19ef4c
xbyak: Update include path
2021-08-15 19:26:38 +01:00
bunnei
3376aeb9bd
Merge pull request #6861 from yzct12345/const-mempy-is-all-the-speed
...
decoders: Optimize memcpy for the other functions
2021-08-15 02:38:12 -07:00
bunnei
b2f859f47c
core: hle: kernel: Disable dispatch count tracking on single core.
...
- This would have limited value, and would be a mess to handle properly.
2021-08-14 02:14:19 -07:00
yzct12345
156754e476
threadsafe_queue: Fix deadlock
...
This fixes a lost wakeup in SPSCQueue. If the reader is in just the right position, the writer's notification will be lost and this will be a problem if the writer then does something to wait on the reader.
This was discovered to affect my upcoming stacktrace PR. I don't think any performance decrease will be noticeable because an uncontended mutex is smart enough to skip the syscall. This PR might also resolve some rare deadlocks but I don't know of any examples.
2021-08-13 19:22:51 +00:00
yzct12345
133e23fe1c
logging: Display backtrace on crash
...
This implements backtraces so we don't have to tell users how to use gdb anymore.
This prints a backtrace after abort or segfault is detected. It also fixes the log getting cut off with the last line containing only a bracket. This change lets us know what caused a crash not just what happened the few seconds before it.
I only know how to add support for Linux with GCC. Also this doesn't work outside of C/C++ such as in dynarmic or certain parts of graphics drivers. The good thing is that it'll try and just crash again but the stack frames are still there so the core dump will work just like before.
2021-08-13 18:58:35 +00:00
yzct12345
aee8cc20ea
logging: Simplify and make thread-safe
...
This simplifies the logging system.
This also fixes some lost messages on startup.
The simplification is simple. I removed unused functions and moved most things in the .h to the .cpp. I replaced the unnecessary linked list with its contents laid out as three member variables. Anything that went through the linked list now directly accesses the backends. Generic functions are replaced with those for each specific use case and there aren't many. This change increases coupling but we gain back more KISS and encapsulation.
With those changes it was easy to make it thread-safe. I just removed the mutex and turned a boolean atomic. I was planning to use this thread-safety in my next PR about stacktraces. It was actually async-signal-safety at first but I ended up using a different approach. Anyway getting rid of the linked list is important for that because have the list of backends constantly changing complicates things.
2021-08-13 18:39:45 +00:00
Sönke Holz
66bc5a27ba
configuration: fix mingw-w64 build
2021-08-13 12:39:14 +02:00
spholz
9826ea72b2
network: don't use reinterpret_cast in GetAvailableNetworkInterfaces
2021-08-13 11:58:34 +02:00
Sönke Holz
8c9ce19145
network: fix mingw-w64 build
...
The header "combaseapi.h" of mingw-w64 defines "interface" as "struct".
2021-08-13 11:23:50 +02:00
Sönke Holz
da59702a7d
network: don't use assert to check if no network interfaces are returned
2021-08-13 11:21:34 +02:00
bunnei
5364981133
Merge pull request #6862 from german77/badsdl
...
input_common: Disable sdl raw input mode
2021-08-12 21:14:26 -07:00
Sönke Holz
cce5a6db3b
configuration: move network_interface include to source file
2021-08-13 02:48:39 +02:00
Sönke Holz
b8b4170dd6
network: use Common::BitCast instead of std::bit_cast
2021-08-13 01:28:14 +02:00
Sönke Holz
8e6aa553c0
network: narrow down scope of "result" in win32 code for
...
GetAvailableNetworkInterfaces
2021-08-13 00:37:03 +02:00
Sönke Holz
90a97c43c7
configuration: use tr instead of QStringLiteral for "None" item in
...
network interface combobox
2021-08-13 00:34:04 +02:00
Sönke Holz
a7e514f3db
network: use explicit bool conversions in GetAvailableNetworkInterfaces
2021-08-13 00:31:33 +02:00
Sönke Holz
052fb4ec7e
network: initialize ip_addr in GetHostIPv4Address()
2021-08-13 00:28:44 +02:00
Sönke Holz
4e840ab505
nifm: use operator*() instead of .value() to get value of std::optional
2021-08-13 00:24:33 +02:00
Sönke Holz
4262dc09d7
nifm: treat a missing host IP address as a non-critical error
2021-08-13 00:21:54 +02:00
spholz
4c093074b9
Merge branch 'yuzu-emu:master' into fix-lan-play
2021-08-12 22:27:17 +02:00
Sönke Holz
d5e4ac4b29
network: correct formatting in network.cpp and network_interface.cpp
2021-08-12 22:15:48 +02:00
spholz
bef7cbbe41
configuration: add option to select network interface
...
This commit renames the "Services" tab to "Network" and adds a combobox that allows the user to select the network interface that yuzu should use. This new setting is now used to get the local IP address in Network::GetHostIPv4Address. This prevents yuzu from selecting the wrong network interface and thus using the wrong IP address. The return type of Network::GetHostIPv4Adress has also been changed.
2021-08-12 21:32:53 +02:00
bunnei
1b274368b1
Merge pull request #6838 from ameerj/sws-align
...
vic: Specify sws_scale height stride.
2021-08-12 11:28:33 -07:00
german77
134a2c23ac
input_common: Disable sdl raw input mode
2021-08-12 13:17:07 -05:00
ameerj
f885866fba
codec: Replace deprecated av_init_packet usage
2021-08-12 01:28:01 -04:00
ameerj
561fd5f7a4
nvdec: Implement GPU accelerated decoding for all platforms
...
Supplements the VAAPI intel gpu decoder by implementing the D3D11VA decoder for Windows, and CUVID/VDPAU for Nvidia and AMD on drivers linux respectively.
2021-08-12 01:28:01 -04:00
yzct12345
4f7ee3d7c6
decoders: Templates allow memcpy optimizations
2021-08-12 04:45:25 +00:00
lat9nq
6ebd0fe021
settings: Fix MSVC issues
...
According to https://stackoverflow.com/questions/469508 , we run into a
MSVC bug (since VS 2005) when using diamond inheritance for
RangedSetting.
This explicitly implements those functions in RangedSetting. GetValue is
implemented as just calling the inherited version. The explicit
converson operator is reimplemented. I opted for this over ignoring the
warning with a pragma since this specifies the inherited behavior, and I
have now less faith in MSVC to pick the right one.
In addition, we mark destructors as virtual to silence what I believe is
a fair MSVC compilation error.
2021-08-11 17:12:14 -04:00
bunnei
8212eb9900
Merge pull request #6776 from lat9nq/ranged-settings
...
settings: Implement settings ranges
2021-08-10 21:19:01 -07:00
Fernando S
254526c3d2
Merge pull request #6820 from yzct12345/split-cache
...
texture_cache: Split out template definitions
2021-08-10 12:23:05 +02:00
Ameer J
6f2c0e3ae0
Merge pull request #6837 from german77/no-pause-screenshot
...
main: Avoid stopping emulation when taking a screenshot
2021-08-09 23:49:48 -04:00
ameerj
8236b4f4d7
vic: Specify sws_scale height stride.
...
Silences a sws_scale runtime warning about unaligned strides.
2021-08-09 23:24:16 -04:00
bunnei
ea4923218a
Merge pull request #6823 from yzct12345/memory-cleanup
...
memory: Clean up code
2021-08-09 17:09:56 -07:00
bunnei
9cc4c9e0b6
Merge pull request #6839 from ameerj/frame-cap-positon
...
configure_general: Swap positions of speed limit and frame limit options
2021-08-09 12:32:07 -07:00
Mai M
d49016380e
Merge pull request #6844 from ameerj/vp9-empty-frame
...
vp9: Ensure the first frame is complete
2021-08-08 19:02:39 -04:00
Fernando Sahmkow
f76d1a1dae
yuzu-cmd/CMakeLists: Correct attribution for this function.
2021-08-08 20:24:53 +02:00
ameerj
4cd45cf374
vp9: Ensure the first frame is complete
...
Silences a runtime error due to the first frame missing the frame data, and being set to hidden despite being a key-frame.
2021-08-08 13:49:00 -04:00
yzct12345
3c7d3363c1
texture_cache: Address ameerj's review
2021-08-08 11:02:51 +00:00
Fernando S
d107b31b66
Merge pull request #6834 from K0bin/buffer-image-granularity
...
Respect Vulkan bufferImageGranularity
2021-08-08 11:57:40 +02:00
bunnei
0db9964080
Merge pull request #6698 from german77/SDL_QoL
...
input_common: Improve SDL joystick and hide toggle option
2021-08-08 02:44:42 -07:00
bunnei
0c5acc8913
Merge pull request #6817 from gidoly/patch-1
...
Add description to fast gpu time option
2021-08-08 01:11:47 -07:00
ameerj
24e2e4288e
configure_general: Swap positions of speed limit and frame limit options
2021-08-08 01:00:40 -04:00
german77
32e0572a68
input_common: Improve SDL joystick and hide toggle option
2021-08-07 23:11:23 -05:00
bunnei
551b61a46e
Merge pull request #6827 from Morph1984/uuid-hash
...
common: uuid: Add hash function for UUID
2021-08-07 17:18:46 -07:00
Rodrigo Locatti
84bdc6969f
input_common: Fix data race on GC implementation
2021-08-07 16:46:26 -05:00
german77
56090126ec
main: Avoid stopping emulation when taking a screenshot
2021-08-07 15:45:29 -05:00
bunnei
7f907227dd
Merge pull request #6830 from ameerj/nvdec-unimpld-codec
...
nvdec: Better logging for unimplemented codecs
2021-08-07 12:37:39 -07:00
bunnei
8d8a230257
core: hle: kernel: k_thread: Mark KScopedDisableDispatch as nodiscard.
2021-08-07 12:33:31 -07:00
bunnei
79c64bf1ee
core: cpu_manager: Use invalid core_id on init and simplify shutdown.
2021-08-07 12:33:07 -07:00
bunnei
1b1b33993b
core: hle: service: buffer_queue: Improve management of KEvent.
2021-08-07 12:18:48 -07:00
bunnei
1458629fc8
core: hle: kernel: k_auto_object: Add GetName method.
...
- Useful purely for debugging.
2021-08-07 12:18:48 -07:00
bunnei
8cbb66daf8
core: hle: service: nvflinger/vi: Improve management of KEvent.
2021-08-07 12:18:47 -07:00
bunnei
0cd7bf70a3
core: hle: kernel: DisableDispatch on suspend threads.
2021-08-07 12:18:47 -07:00
bunnei
19457823ea
core: hle: kernel: k_scheduler: Improve DisableScheduling and EnableScheduling.
2021-08-07 12:18:47 -07:00
bunnei
62b84a3e96
core: cpu_manager: Use KScopedDisableDispatch.
2021-08-07 12:18:47 -07:00
bunnei
347e4d6ab8
core: hle: kernel: Use CurrentPhysicalCoreIndex as appropriate.
2021-08-07 12:18:47 -07:00
bunnei
aedc599224
core: hle: kernel: k_scheduler: Remove unnecessary MakeCurrentProcess.
2021-08-07 12:18:47 -07:00
bunnei
edba87b96d
core: hle: kernel: k_scheduler: Improve ScheduleImpl.
2021-08-07 12:18:47 -07:00
bunnei
0d22a55e01
core: hle: kernel: k_scheduler: Improve Unload.
2021-08-07 12:18:47 -07:00
bunnei
cba49de65b
core: hle: kernel: k_process: DisableDispatch on main thread.
2021-08-07 12:18:47 -07:00
bunnei
92ef6e44ee
core: hle: kernel: k_handle_table: Use KScopedDisableDispatch as necessary.
2021-08-07 12:18:47 -07:00
bunnei
9951f24bad
core: hle: kernel: k_thread: Add KScopedDisableDispatch.
2021-08-07 12:18:47 -07:00
bunnei
43fcb97ef3
core: hle: kernel: Ensure idle threads are closed before destroying scheduler.
2021-08-07 12:18:47 -07:00
bunnei
951143ba57
core: hle: kernel: Reflect non-emulated threads as core 3.
2021-08-07 12:18:47 -07:00
bunnei
b0cb5c830c
core: cpu_manager: Use jthread.
2021-08-07 12:18:47 -07:00
Robin Kertels
f8f27b6caf
vulkan_memory_allocator: Respect bufferImageGranularity
2021-08-07 15:28:05 +02:00
bunnei
f5bab36b38
Merge pull request #6795 from sankasan/cmd-remove-cursor-fullscreen
...
yuzu-cmd: hide mouse cursor when started fullscreen
2021-08-07 02:00:29 -07:00
bunnei
249bc8fdc9
Merge pull request #6815 from german77/ui_improvements
...
settings_ui: Add emulated joystick position dot to controller preview
2021-08-06 23:54:23 -07:00
ameerj
f52a3de990
nvdec: Better logging for unimplemented codecs
2021-08-07 01:08:33 -04:00
bunnei
6bb6ae6dcb
Merge pull request #6791 from ameerj/astc-opt
...
astc_decoder: Various performance and memory optimizations
2021-08-06 21:45:24 -07:00
yzct12345
b61be44dbc
memory: Address lioncash's review
2021-08-07 03:03:21 +00:00
yzct12345
a21f46127b
memory: Dedup Read and Write and fix logging bugs
2021-08-07 01:32:06 +00:00
yzct12345
0cef80ec92
texture_cache: Address ameerj's review
2021-08-07 01:27:47 +00:00
spholz
b038a6deb4
Merge branch 'yuzu-emu:master' into fix-lan-play
2021-08-07 02:55:19 +02:00
Sönke Holz
47f72f9345
network: GetAndLogLastError: ignore Errno::AGAIN
...
If non-blocking sockets are used, they generate a lot of Errno::AGAIN errors when they didn't receive any data. These errors shouldn't be logged.
2021-08-07 02:54:25 +02:00
bunnei
cb6d198101
Merge pull request #6799 from ameerj/vp9-fixes
...
nvdec: Fix VP9 reference frame refreshes
2021-08-06 17:46:46 -07:00
Sönke Holz
2c0d0e8af4
network: GetCurrentIpConfigInfo: return host IP address
...
Service::NIFM::IGeneralService::GetCurrentIpConfigInfo currently hardcodes 192.168.1.100 as the IP address, which prevents LAN play from working correctly.
2021-08-07 02:17:02 +02:00
ameerj
0c28433539
nvhost_nvdec_common: Remove BufferMap
...
This was mainly used to keep track of mapped buffers for later unmapping. Since unmap is no longer implemented, this no longer seves a valuable purpose.
2021-08-06 20:11:12 -04:00
ameerj
b34ded024c
vp9: Cleanup unused variables
...
With reference frames refreshes fix, we no longer need to buffer two frames in advance.
We can also remove other unused or otherwise unneeded variables.
2021-08-06 20:08:11 -04:00
ameerj
27969c5943
vp9: Fix reference frame refreshes
...
This resolves the artifacting when decoding VP9 streams.
2021-08-06 20:08:08 -04:00
ameerj
7acf5d8bfd
nvhost_nvdec_common: Stub UnmapBuffer Ioctl
...
Skip unmapping nvdec buffers to avoid breaking the continuity of the VP9 reference frame addresses, and the risk of invalidating data before the async GPU thread is done with it.
2021-08-06 20:06:30 -04:00
Sönke Holz
35b86fce87
network: fix fcntl cmds
...
F_SETFL/F_GETFL are the correct commands to set a socket to be non-blocking
2021-08-06 21:08:31 +02:00
bunnei
6c222a04a5
Merge pull request #6822 from yzct12345/clion-assert
...
assert: Avoid empty macros
2021-08-05 22:29:45 -07:00
Morph
93697805a7
common: uuid: Add hash function for UUID
...
Used when UUID is a key in an unordered_map. The hash is produced by XORing the high and low 64-bits of the UUID together.
2021-08-06 00:41:55 -04:00
yzct12345
7a421e7e33
memory: Clean up CopyBlock too
2021-08-05 21:09:08 +00:00
gidoly
d5ab9ff29d
Update configure_graphics_advanced.ui
...
add description too fast gpu time
2021-08-06 06:08:12 +09:00
yzct12345
e99a125e19
texture_cache: Don't change copyright year
2021-08-05 20:52:12 +00:00
yzct12345
4436e63616
texture_cache: Address ameerj's review
2021-08-05 20:46:24 +00:00
yzct12345
fa26e226de
memory: Address lioncash's review
2021-08-05 20:29:43 +00:00
bunnei
1822aa11eb
Merge pull request #6813 from Morph1984/hex-string-to-uuid
...
common: uuid: Add hex string to UUID constructor
2021-08-05 13:29:11 -07:00
yzct12345
cbe093e865
memory: Clean up code
2021-08-05 20:11:14 +00:00
yzct12345
dd9e7378dc
assert: Verify formatting
2021-08-05 17:46:22 +00:00
yzct12345
3239e923cc
assert: Avoid empty macros
2021-08-05 17:21:56 +00:00
yzct12345
e85149c507
texture_cache: Split templates out
2021-08-05 13:52:30 +00:00
Mai M
8a77638f5e
Merge pull request #6819 from Morph1984/i-am-dumb
...
applet_swkbd: Include the null terminator in the buffer size calculation
2021-08-04 23:32:01 -04:00
Mai M
0b58e40e5e
Merge pull request #6818 from Morph1984/hex-util-bug
...
hex_util: Fix incorrect array size in AsArray
2021-08-04 23:31:04 -04:00
Morph
0971b90782
applet_swkbd: Include the null terminator in the buffer size calculation
...
Some games may interpret the read string as a null-terminated string instead of just reading the string up to buffer_size.
2021-08-04 22:32:09 -04:00
Morph
8f488c60da
hex_util: Fix incorrect array size in AsArray
...
Although this isn't used, this is a potential bug as HexStringToArray will perform an out-of-bounds read.
2021-08-04 22:16:29 -04:00
lat9nq
73acba8ddb
config: Read connected setting for controllers
...
Currently yuzu will read the mapping but does not connect a controller
despite adding subsequent configurations for it. Read the `connected`
setting for now as a boolean like the Qt frontend.
2021-08-04 17:09:35 -04:00
german77
ff46d36f8e
settings_ui: Add emulated joystick position dot to controller preview
2021-08-04 11:46:54 -05:00
Morph
6b2f133eef
common: uuid: Add hex string to UUID constructor
...
This allows for easily converting a hex string into a Common::UUID, which is backed by a 128 bit unsigned integer.
2021-08-04 10:45:41 -04:00
yzct12345
e13e98d99d
nvdec: Implement VA-API hardware video acceleration ( #6713 )
...
* nvdec: VA-API
* Verify formatting
* Forgot a semicolon for Windows
* Clarify comment about AV_PIX_FMT_NV12
* Fix assert log spam from missing negation
* vic: Remove forgotten debug code
* Address lioncash's review
* Mention VA-API is Intel/AMD
* Address v1993's review
* Hopefully fix CMakeLists style this time
* vic: Improve cache locality
* vic: Fix off-by-one error
* codec: Async
* codec: Forgot the GetValue()
* nvdec: Address ameerj's review
* codec: Fallback to CPU without VA-API support
* cmake: Address lat9nq's review
* cmake: Make VA-API optional
* vaapi: Multiple GPU
* Apply suggestions from code review
Co-authored-by: Ameer J <52414509+ameerj@users.noreply.github.com>
* nvdec: Address ameerj's review
* codec: Use anonymous instead of static
* nvdec: Remove enum and fix memory leak
* nvdec: Address ameerj's review
* codec: Remove preparation for threading
Co-authored-by: Ameer J <52414509+ameerj@users.noreply.github.com>
2021-08-03 23:43:11 -04:00
Morph
b6b9030618
Merge pull request #6805 from lat9nq/fix-user-profiles
...
config: Only read/write current_user on global config
2021-08-02 23:58:41 -04:00
lat9nq
959f332e99
config: Only read/write current_user on global config
2021-08-02 18:29:24 -04:00
spholz
e08a9d00e0
network: fix ternary operator in Socket::SendTo
2021-08-02 20:12:12 +02:00
yzct12345
46e4e6707f
decoders: Optimize swizzle copy performance ( #6790 )
...
This makes UnswizzleTexture up to two times faster. It is the main bottleneck in NVDEC video decoding.
2021-08-02 11:18:58 -04:00
san
e1d8000de7
yuzu-cmd: hide cursor when in fullscreen
...
Exposed the SDL_ShowCursor function to EmuWindow baseclass. When creating the window (GL or VK) in fullscreen it now automatically hides the cursor.
2021-08-01 21:46:13 +02:00
Malte Jürgens
4304984555
game_list: Make game list folder icons smaller ( #6762 )
...
Makes the default game list folder icons 48x48 by default instead of 64x64, and allows for selecting small (24x24) and large (72x72) icon sizes.
2021-08-01 12:59:36 -04:00
Morph
11a0033a66
service: set: Correct copy amount in GetAvailableLanguageCodes
2021-08-01 11:59:52 -04:00
Fernando S
e930d1c13b
Merge pull request #6720 from ameerj/vk-screenshot
...
renderer_vulkan: Implement screenshots
2021-08-01 13:31:33 +02:00
Ameer J
2361a8da8f
Merge pull request #6765 from ReinUsesLisp/y-negate-vk
...
vk_rasterizer: Flip viewport on Y_NEGATE
2021-08-01 01:47:37 -04:00
ameerj
bfb2325618
astc_decoder: Reduce workgroup size
...
This reduces the amount of over dispatching when there are odd dimensions (i.e. ASTC 8x5), which rarely evenly divide into 32x32.
2021-08-01 01:22:27 -04:00
ameerj
2ff4eb5def
astc_decoder: Compute offset swizzles in-shader
...
Alleviates the dependency on the swizzle table and a uniform which is constant for all ASTC texture sizes.
2021-08-01 01:22:26 -04:00
ameerj
59ff9e51f2
astc_decoder: Make use of uvec4 for payload data
2021-07-31 22:28:04 -04:00
ameerj
8f9c7a4ba2
astc_decoder: Simplify Select2DPartition
2021-07-31 21:36:26 -04:00
ameerj
958ede1ed9
astc_decoder: Optimize the use EncodingData
...
This buffer was a list of EncodingData structures sorted by their bit length, with some duplication from the cpu decoder implementation.
We can take advantage of its sorted property to optimize its usage in the shader.
Thanks to wwylele for the optimization idea.
2021-07-31 21:36:26 -04:00
ameerj
f4409c9db9
astc.h: Move data to cpp implementation
...
Moves leftover values that are no longer used by the gpu decoder back to the cpp implementation.
2021-07-31 21:26:42 -04:00
lat9nq
1f81d4415c
settings: Use std::clamp where possible
...
Addresses PR review
Co-authored-by: PixelyIon <pixelyion@protonmail.com>
2021-07-31 17:20:12 -04:00
Morph
057a4a8a06
hle: api_version: Update HOS version to 12.1.0
...
Keeps us up to date with reporting the system version.
2021-07-31 14:39:49 -04:00
lat9nq
3314d63af4
settings: Remove unnecessary std::move usages
...
Addresses review feedback.
Co-authored-by: Mai M. <mathew1800@gmail.com>
2021-07-30 18:44:50 -04:00
bunnei
8177751c0e
Merge pull request #6752 from Morph1984/pt-br
...
service: ns, set: Add PT_BR (Brazilian Portuguese)
2021-07-30 14:42:11 -07:00
bunnei
1e83edaf6b
Merge pull request #6775 from lat9nq/cmd-remove-global-core
...
emu_window: Remove global system instance
2021-07-30 13:28:24 -07:00
bunnei
828d9370b2
Merge pull request #6759 from ReinUsesLisp/pipeline-statistics
...
renderer_vulkan: Add setting to log pipeline statistics
2021-07-30 11:18:52 -07:00
lat9nq
9194f2f342
settings: Fix function virtualization
...
Fixes a theoretical scenario where a Setting is using the BasicSetting's
GetValue function. In practice this probably only happens on yuzu-cmd,
where there is no need for a Setting's additional features. Need to fix
regardless.
2021-07-30 13:33:35 -04:00
lat9nq
62e78f36c7
settings: Implement setting ranges
...
Clamps the setting's values against the specified minimum and maximum
values.
2021-07-30 13:33:21 -04:00
lat9nq
d15ff8a89b
emu_window: Remove global system instance
...
It was just the one in emu_window_sdl2, but since _gl and _vk inherit
from it, they all needed adjustments.
Leaves just the one auto system& in main().
2021-07-30 10:43:58 -04:00
Morph
ac09092898
applet_swkbd: Correct string buffer size calculation
...
The buffer size here does not include the initial 8 bytes.
2021-07-30 02:19:04 -04:00
Morph
743b6b53d9
configure_system: Add Brazilian Portuguese to the list of languages
2021-07-30 02:15:53 -04:00
Morph
2359f8283a
service: set: Correct 4.0.0 max_entries to 0x40 (64) instead of 17
2021-07-30 02:15:53 -04:00
Morph
58a79102ae
service: ns, set: Add PT_BR (Brazilian Portuguese)
2021-07-30 02:15:53 -04:00
Morph
bef5d608a9
Merge pull request #6767 from ReinUsesLisp/fold-float-pack
...
shader: Fold UnpackFloat2x16 and PackFloat2x16
2021-07-30 02:07:52 -04:00
bunnei
9a7c2869d8
Merge pull request #6722 from ReinUsesLisp/xmad-opts
...
shader: Fold integer FMA from Nvidia's pattern
2021-07-29 18:45:37 -07:00
ReinUsesLisp
ecc05bdcb6
shader: Fold UnpackFloat2x16 and PackFloat2x16
...
Simplifies the code a bit when possible. These instructions should be
no-ops codegen wise.
2021-07-29 21:22:52 -03:00
Ameer J
f2b7818cf0
Merge pull request #6751 from Morph1984/languagecode
...
service: ns: Map ZH_TW and ZH_CN to Traditional/Simplified Chinese
2021-07-29 14:41:03 -04:00
bunnei
56a35a0886
Merge pull request #6742 from Morph1984/uuid
...
common: uuid: Return a lower-case hex string in Format
2021-07-29 09:37:15 -07:00
ReinUsesLisp
2eaec1b7ee
vk_rasterizer: Flip viewport on Y_NEGATE
...
Matches OpenGL's behavior. I don't believe this register flips geometry,
but we have to try to match behavior on both backends.
2021-07-29 02:17:53 -03:00
ameerj
9629e74364
renderers: Add explicit invert_y bool to screenshot callback
...
OpenGL and Vulkan images render in different coordinate systems. This allows us to specify the coordinate system of the screenshot within each renderer
2021-07-28 21:46:08 -04:00
ameerj
6733ae9aab
renderer_vulkan: Implement screenshots
2021-07-28 21:45:55 -04:00
ameerj
317f238e1d
vk_blit_screen: Add public CreateFramebuffer method
2021-07-28 21:43:02 -04:00
ameerj
870a92bd78
vk_blit_screen: Make Draw method more generic
...
Allows specifying the framebuffer and render area dimensions, rather than being hard coded for the render window.
2021-07-28 21:37:30 -04:00
bunnei
b1e3c13f5a
Merge pull request #6760 from ReinUsesLisp/fp16-collect
...
shader: Mark ConvertF16F32 and ConvertF32F16 as fp16 instructions
2021-07-28 14:55:06 -07:00
bunnei
a31bcb8371
Merge pull request #6758 from jbeich/fastmem
...
host_memory: enable fastmem on FreeBSD
2021-07-28 13:01:54 -07:00
bunnei
0821c4c02d
Merge pull request #6700 from lat9nq/fullscreen-enum
...
general: Implement FullscreenMode enumeration
2021-07-28 11:36:42 -07:00
Morph
5b9d80faea
Merge pull request #6671 from jls47/master
...
applets/web: Addressing QT Navigation issues in Linux
2021-07-27 22:46:27 -04:00
ReinUsesLisp
d84b81fdfb
shader: Mark ConvertF16F32 and ConvertF32F16 as fp16 instructions
...
Fixes instances where fp16 types are not declared on SPIR-V but they are
used. This shouldn't happen on master, as it's been uncovered by an
additional optimization pass.
2021-07-27 21:33:05 -03:00
ReinUsesLisp
482c1ec8e5
renderer_vulkan: Add setting to log pipeline statistics
...
Use VK_KHR_pipeline_executable_properties when enabled and available to
log statistics about the pipeline cache in a game.
For example, this is on Turing GPUs when generating a pipeline cache
from Super Smash Bros. Ultimate:
Average pipeline statistics
==========================================
Code size: 6433.167
Register count: 32.939
More advanced results could be presented, at the moment it's just an
average of all 3D and compute pipelines.
2021-07-27 21:29:24 -03:00
bunnei
4dfbd2579c
Merge pull request #6749 from lioncash/rtarget
...
render_target: Add missing initializer for size extent
2021-07-27 17:28:53 -07:00
bunnei
f2d0cb5498
Merge pull request #6730 from Morph1984/buf_to_stdstring
...
common: fs: fs_util: Add BufferToUTF8String
2021-07-27 15:50:54 -07:00
Jan Beich
471ddd0674
host_memory: Add workaround for FreeBSD 12
...
src/common/host_memory.cpp:360:14: error: use of undeclared identifier
'memfd_create'
fd = memfd_create("HostMemory", 0);
^
2021-07-27 20:15:23 +00:00
Jan Beich
112a8e017d
host_memory: Enable Linux implementation on FreeBSD
...
HW.Memory <Critical> common/host_memory.cpp:HostMemory:492: Fastmem unavailable, falling back to VirtualBuffer for memory allocation
2021-07-27 20:09:43 +00:00
Rodrigo Locatti
100a39edb6
Merge pull request #6748 from lioncash/engine-init
...
video_core/engine: Consistently initialize rasterizer pointers
2021-07-27 16:17:20 -03:00
Rodrigo Locatti
b944f2b0d3
Merge pull request #6744 from lioncash/exc
...
exception: Make constructors explicit
2021-07-27 16:11:17 -03:00
bunnei
f55b0d994e
Merge pull request #6745 from lioncash/copies
...
video_core: Remove some unused variables
2021-07-27 11:38:32 -07:00
jls47
20083ccd43
qt_web_browser: Fix lambda capture for HIDButton
2021-07-27 11:31:12 -04:00
jls47
85e29934fd
qt_web_browser: Focus on the first link element
...
Focusing on the first link element fixes element navigation upon loading the web applet in games such as Super Mario Odyssey
2021-07-27 11:31:11 -04:00
Morph
6c7b6b7be0
service: ns: Remove unused ns_language header
2021-07-27 08:59:26 -04:00
Morph
ae8a88d10c
service: ns: Map ZH_TW and ZH_CN to Traditional/Simplified Chinese
2021-07-27 08:54:41 -04:00
Lioncash
2fa5f631c3
render_target: Add missing initializer for size extent
...
Everything else has a default constructor that does the straightforward
thing of initializing most members to a default value, except for the
size.
We explicitly initialize the size (and others, for consistency), to
prevent potential uninitialized reads from occurring. Particularly given
the largeish surface area that this struct is used in.
2021-07-27 07:41:21 -04:00
Lioncash
23ec5faf24
video_core/engine: Consistently initialize rasterizer pointers
...
Ensures all of the engines have consistent and deterministic
initialization of the rasterizer pointers.
2021-07-27 07:30:57 -04:00
Lioncash
be66e2a272
vulkan_wrapper: Fix SetObjectName() always indicating objects as images
...
We should be using the passed in object type instead.
2021-07-27 07:19:15 -04:00
Lioncash
dd25abba68
buffer_cache: Remove unused small_vector in CommitAsyncFlushesHigh()
...
Given this is non-trivial, the constructor is required to execute, so
this removes a bit of redundant codegen.
2021-07-27 06:24:44 -04:00
Lioncash
ac3aa96ebc
gl_shader_cache: Remove unused variable
2021-07-27 06:23:49 -04:00
Lioncash
f902b4b167
vk_compute_pass: Remove unused captures
...
Resolves two compiler warnings.
2021-07-27 06:17:52 -04:00
Lioncash
b5ce444508
exception: Make constructors explicit
...
Ensures that exception construction is always explicit.
2021-07-27 04:15:14 -04:00
Lioncash
b650c38a31
exception: Make what() member function nodiscard
2021-07-27 04:14:32 -04:00
Lioncash
d04bbd8207
exception: Narrow down specific header
...
We can use the <exception> header instead of pulling in all of the
exception-style classes.
2021-07-27 04:09:18 -04:00
Morph
10e072f490
common: fs: fs_util: Add BufferToUTF8String
...
Allows for direct conversion to std::string without having to convert std::u8string to std::string
2021-07-27 00:02:22 -04:00
Morph
881199e524
common: uuid: Return a lower-case hex string in Format
2021-07-26 23:54:59 -04:00
bunnei
08350d1744
Merge pull request #6696 from ameerj/speed-limit-rename
...
general: Rename "Frame Limit" references to "Speed Limit"
2021-07-26 18:51:00 -07:00
Rodrigo Locatti
c1fc22249a
Merge pull request #6741 from ReinUsesLisp/stream-remove
...
vk_stream_buffer: Remove unused stream buffer
2021-07-26 20:35:01 -03:00
Rodrigo Locatti
162759edf2
Merge pull request #6740 from K0bin/hvv-fallback
...
Handle allocation failure in Staging buffer
2021-07-26 20:34:44 -03:00
Robin Kertels
534c86587b
vk_staging_buffer_pool: Fall back to host memory when allocation fails
2021-07-26 23:37:18 +02:00
Rodrigo Locatti
71077365ac
Merge pull request #6728 from ReinUsesLisp/null-buffer-usage
...
vk_buffer_cache: Add transform feedback usage to null buffer
2021-07-26 18:30:45 -03:00
Rodrigo Locatti
2fffe98e5c
Merge pull request #6729 from ReinUsesLisp/quad-indexed-barrier
...
vk_compute_pass: Fix pipeline barrier for indexed quads
2021-07-26 18:30:05 -03:00
ReinUsesLisp
5afcd587e3
vk_stream_buffer: Remove unused stream buffer
...
Remove unused file.
2021-07-26 18:19:53 -03:00
Rodrigo Locatti
4d2a527006
Merge pull request #6724 from lioncash/nodisc-shader
...
shader_recompiler: Remove unnecessary [[nodiscard]] instances
2021-07-26 16:35:21 -03:00
Rodrigo Locatti
d424762d2c
Merge pull request #6726 from lioncash/hguard
...
emit_spirv_instructions: Add missing header guard
2021-07-26 16:35:11 -03:00
Rodrigo Locatti
b894ae1bd3
Merge pull request #6727 from lioncash/topology
...
emit_glasm: Fix LINESS_ADJACENCY typo in InputPrimitive()
2021-07-26 16:35:03 -03:00
Vamsi Krishna
713f960ce3
configure_graphics: reword GLASM option
...
Change wording to explain that GLASM is actually short for Assembly Shaders
2021-07-26 20:49:31 +05:30
Rodrigo Locatti
0da5a7170b
Merge pull request #6723 from lioncash/shader
...
object_pool: Add missing return in Chunk move assignment operator
2021-07-26 06:01:21 -03:00
Rodrigo Locatti
1afb7b75cd
Merge pull request #6725 from lioncash/control-token
...
control_flow: Fix duplicate switch case in OpcodeToken
2021-07-26 06:00:23 -03:00
ReinUsesLisp
8d86e9a9d7
vk_compute_pass: Fix pipeline barrier for indexed quads
...
Use an index buffer barrier instead of a vertex input read barrier.
2021-07-26 05:51:09 -03:00
ReinUsesLisp
b53503b0fe
vk_buffer_cache: Add transform feedback usage to null buffer
...
Fixes bad API usages on Vulkan.
2021-07-26 05:49:37 -03:00
Lioncash
00bd622334
emit_glasm: Fix LINESS_ADJACENCY typo in InputPrimitive()
...
This should be LINES_ADJACENCY
2021-07-26 04:44:56 -04:00
Lioncash
0692818106
emit_spirv_instructions: Add missing header guard
2021-07-26 04:28:35 -04:00
Lioncash
05201f4f88
shader_recompiler: Remove unnecessary [[nodiscard]] instances
...
[[nodiscard]] doesn't do anything on functions with a void return type
and causes superfluous warnings.
2021-07-26 04:23:59 -04:00
Lioncash
9d5aa3d65a
control_flow: Fix duplicate switch case in OpcodeToken
...
This previously duplicated the case of the PBK case above it.
2021-07-26 04:16:34 -04:00
Lioncash
23da07e8e5
object_pool: Add missing return in Chunk move assignment operator
...
Prevents undefined behavior from occurring.
2021-07-26 04:01:05 -04:00
ReinUsesLisp
4f19303fe0
shader: Fold integer FMA from Nvidia's pattern
...
Fold shaders doing "a * b + c" on integers from the pattern generated by
Nvidia's GL compiler.
On a somewhat complex compute shader it reduces the code size by 16
instructions from 2 matches on Turing GPUs.
On Intel as extracted from KHR_pipeline_executable_properties:
Before the optimization:
```
Instruction Count: 2057
Basic Block Count: 45
Scratch Memory Size: 14752
Spill Count: 232
Fill Count: 261
SEND Count: 610
Cycle Count: 11325
```
After the optimization:
```
Instruction Count: 2046
Basic Block Count: 44
Scratch Memory Size: 13728
Spill Count: 219
Fill Count: 268
SEND Count: 604
Cycle Count: 11367
```
2021-07-26 04:58:02 -03:00
ReinUsesLisp
c6e1483e17
shader: Use TryInstRecursive on XMAD multiply folding
...
Simplify a bit the logic.
2021-07-26 04:15:27 -03:00
ReinUsesLisp
222a6542ab
shader: Add TryInstRecursive utility to values
2021-07-26 01:31:05 -03:00
bunnei
eee75fe604
Merge pull request #6697 from ameerj/fps-cap
...
config, nvflinger: Add FPS cap setting
2021-07-25 16:23:44 -07:00
lat9nq
24b832dee9
Merge branch 'master' into fullscreen-enum
2021-07-25 15:31:33 -04:00
bunnei
4827595bb1
Merge pull request #6575 from FernandoS27/new_settings
...
Settings: Eliminate ASYNC & MULTICORE Toggles and add GPU Accuracy to status bar
2021-07-25 11:45:45 -07:00
Morph
fc99dce96e
Merge pull request #6709 from ameerj/screenshot-path
...
main: Fix screenshot filepath construction
2021-07-25 14:41:38 -04:00
bunnei
0a328423e8
Merge pull request #6585 from ameerj/hades
...
Shader Decompiler Rewrite
2021-07-25 11:39:04 -07:00
ameerj
01b566101b
main: Fix screenshot filepath construction
...
The screenshot directory path returned does not have a trailing directory separator character. This caused screenshots to be saved in the parent directory of the configured screenshot directory.
This fixes that behavior
2021-07-25 14:24:08 -04:00
bunnei
1c2599a130
Merge pull request #6699 from lat9nq/common-threads
...
common: Publically link to pthreads
2021-07-25 10:43:11 -07:00
bunnei
c47035538f
Merge pull request #6690 from ReinUsesLisp/dma-clear-fixups
...
buffer_cache: Misc fixups related to buffer clears
2021-07-24 01:27:50 -04:00
ameerj
2fef43b32a
renderer_base: Removed redundant settings
...
use_framelimiter was not being used internally by the renderers.
set_background_color was always set to true as there is no toggle for the renderer background color, instead users directly choose the color of their choice.
2021-07-23 22:10:01 -04:00
ameerj
aeff61a0cc
general: Rename "Frame Limit" references to "Speed Limit"
...
This setting is best referred to as a speed limit, as it involves the limits of all timing based aspects of the emulator, not only framerate.
This allows us to differentiate it from the fps unlocker setting.
2021-07-23 22:10:01 -04:00
ameerj
8c0d6af843
config, nvflinger: Add FPS cap setting
...
Allows finer tuning of the FPS limit.
2021-07-23 22:04:36 -04:00
bunnei
3cc092849c
Merge pull request #6551 from bunnei/improve-kernel-obj
...
Improve management of kernel objects
2021-07-23 21:23:56 -04:00
lat9nq
f70155db64
configuration: Use combobox apply template where possible
...
We don't need to manually apply this setting now that a template can do
this for us.
2021-07-23 10:18:07 -04:00
lat9nq
4b02e2b489
general: Implement FullscreenMode enumeration
...
Prevents us from using an unclear 0 or 1 to describe the fullscreen
mode.
2021-07-23 10:14:37 -04:00
lat9nq
0ea70212af
common: Publically link to pthreads
...
Common requires pthreads but does not refer to it when linking to other
modules. Fix this by linking to Threads where necessary.
2021-07-23 09:47:52 -04:00
ReinUsesLisp
ba89444667
shader: Support out of bound local memory reads and immediate writes
...
Support ignoring immediate out of bound writes. Writing dynamically out
of bounds is not yet supported (e.g. R0+0x4).
Reading out of bounds yields zero. This is supported checking for the
size from the IR; if the input is immediate, the optimization passes
will drop it.
2021-07-22 21:51:41 -04:00
ReinUsesLisp
7efec6bce4
vulkan/blit_image: Commit descriptor sets within worker thread
...
Fixes race condition caused. The descriptor pool is not thread safe, so
we have to commit descriptor sets within the same thread.
2021-07-22 21:51:40 -04:00
ReinUsesLisp
6c7f6e1228
vulkan_device: Blacklist Volta and older from VK_KHR_push_descriptor
...
Causes crashes on Link's Awakening intro. It's hard to debug if it's our
fault due to bugs in validation layers.
2021-07-22 21:51:40 -04:00
ReinUsesLisp
4ae6c023df
qt: Remove "experimental" from asynchronous shader building UI
2021-07-22 21:51:40 -04:00
ReinUsesLisp
c29f2c9507
Revert "renderers: Disable async shader compilation"
...
This reverts commit 4a152767286717fa69bfc94846a124a366f70065.
2021-07-22 21:51:40 -04:00
ReinUsesLisp
8a74a2c895
opengl: Fix asynchronous shaders
...
Wait for shader to build before configuring it, and wait for the shader
to build before sharing it with other contexts.
2021-07-22 21:51:40 -04:00
ReinUsesLisp
a97c0ccabd
shader_environment: Receive cache version from outside
...
This allows us invalidating OpenGL and Vulkan separately in the future.
2021-07-22 21:51:40 -04:00
ReinUsesLisp
2e6acac647
cmake: Remove shader cache version
2021-07-22 21:51:40 -04:00
ameerj
3927809a63
shader: Fix disabled attribute default values
2021-07-22 21:51:40 -04:00
ameerj
a7fe20e636
gl_device: Simplify GLASM setting logic
2021-07-22 21:51:40 -04:00
ameerj
e6d3a301f2
glsl: Simplify FCMP emission
2021-07-22 21:51:40 -04:00
ameerj
4f3e869dd0
glsl: Update TessellationControl gl_in
...
Adheres to GL_ARB_separate_shader_objects requirements
2021-07-22 21:51:40 -04:00
ReinUsesLisp
4f84ef1f2b
renderer_opengl: Use ARB_separate_shader_objects
...
Ensures that states set for a particular stage are not attached to other
stages which may not need them.
2021-07-22 21:51:40 -04:00
ameerj
ffe72f8d37
shader: Implement ISETP.X
2021-07-22 21:51:40 -04:00
ReinUsesLisp
2321666580
shader: Avoid usage of C++20 ranges to build in clang
2021-07-22 21:51:40 -04:00
ameerj
a23f05c215
glsl: Clamp shared mem size to GL_MAX_COMPUTE_SHARED_MEMORY_SIZE
2021-07-22 21:51:40 -04:00
ReinUsesLisp
ac0c2f8edc
gl_shader_cache: Properly implement asynchronous shaders
2021-07-22 21:51:40 -04:00
lat9nq
b557314001
shader_recompiler, video_core: Resolve clang errors
...
Silences the following warnings-turned-errors:
-Wsign-conversion
-Wunused-private-field
-Wbraced-scalar-init
-Wunused-variable
And some other errors
2021-07-22 21:51:40 -04:00
ameerj
779288c071
main: Update Shader Cache menu options
...
This change adds two new context menu items to remove either the OpenGL or the Vulkan shader caches individually, and the provides the option to remove all caches for the selected title.
This also changes the behavior of the open shader cache option. Now it creates the shader cache directory for the title if it does not yet exist.
2021-07-22 21:51:40 -04:00
ameerj
2cde6c5708
renderers: Fix clang formatting
2021-07-22 21:51:40 -04:00
ReinUsesLisp
cdb3837085
shader: Manually convert from array<u32> to bitset instead of using bit_cast
2021-07-22 21:51:40 -04:00
ameerj
e45e458b17
renderers: Disable async shader compilation
...
The current implementation is prone to causing graphical issues. Disable until a better solution is implemented.
2021-07-22 21:51:40 -04:00
ReinUsesLisp
b654537f0f
maxwell_to_vk: Add R16_SNORM
2021-07-22 21:51:40 -04:00
lat9nq
df62bcd9cb
configure_graphics: Mark SPIR-V as Experimental, Mesa only
2021-07-22 21:51:40 -04:00
ameerj
f2f16e3a1d
glsl: Fix tracking of info.uses_shadow_lod
2021-07-22 21:51:40 -04:00
ameerj
508e41777b
shader: Ignore global memory ops on devices lacking int64 support
2021-07-22 21:51:40 -04:00
lat9nq
52f2fe7b52
vulkan_device: Add missing include algorithm
2021-07-22 21:51:40 -04:00
ameerj
d965b7200a
vulkan_device: Blacklist ampere devices from float16 math
2021-07-22 21:51:40 -04:00
ameerj
d54c4880d1
dual_vertex_pass: Clang format
2021-07-22 21:51:40 -04:00
ameerj
472f9fcb18
gl_shader_cache: Fixes for async shaders
2021-07-22 21:51:40 -04:00
ReinUsesLisp
e8d458a81d
vulkan_device: Enable VK_EXT_extended_dynamic_state on RADV 21.2 onward
2021-07-22 21:51:40 -04:00
ReinUsesLisp
ff35ef8ec1
emit_spirv: Workaround VK_KHR_shader_float_controls on fp16 Nvidia
...
Fix regression on Fire Emblem: Three Houses when using native fp16.
2021-07-22 21:51:40 -04:00
lat9nq
84bc5be7a1
configure_graphics: Re-order vulkan device populating
2021-07-22 21:51:40 -04:00
lat9nq
c969f6e678
shader: GCC fmt 8.0.0 fixes
2021-07-22 21:51:40 -04:00
ameerj
79e317ad7d
shader: Account for 33-bit IADD3 scenario
2021-07-22 21:51:40 -04:00
ReinUsesLisp
611797a7c6
shader: Only apply shift on register mode for IADD3
2021-07-22 21:51:39 -04:00
ReinUsesLisp
934b23ab85
vk_rasterizer: Workaround bug in VK_EXT_vertex_input_dynamic_state
...
Workaround potential bug on Nvidia's driver where only updating high
attributes leaves low attributes out dated.
2021-07-22 21:51:39 -04:00
ReinUsesLisp
b48b4b0600
shader: Fix disabled and unwritten attributes and varyings
2021-07-22 21:51:39 -04:00
ameerj
d77dc5919c
glsl: Fix shared and local memory declarations
...
account for the fact that program.*memory_size is in units of bytes.
2021-07-22 21:51:39 -04:00
ameerj
33d21ac2db
opengl: Implement LOP.CC
...
Used by MH:Rise
2021-07-22 21:51:39 -04:00
ReinUsesLisp
1c7c65087d
vk_graphics_pipeline: Implement smooth lines
2021-07-22 21:51:39 -04:00
ReinUsesLisp
bd0796d52f
vk_graphics_pipeline: Implement line width
2021-07-22 21:51:39 -04:00
ReinUsesLisp
7dc8577529
spirv: Fix code emission when descriptor aliasing is unsupported
...
Fixes OpenGL.
2021-07-22 21:51:39 -04:00
lat9nq
5443d4bd9c
video_core: Enable GL SPIR-V shaders
2021-07-22 21:51:39 -04:00
lat9nq
ddd4720fe4
general: Add setting shader_backend
...
GLASM is getting good enough that we can move it out of advanced
graphics settings. This removes the setting `use_assembly_shaders`,
opting for a enum class `shader_backend`. This comes with the benefits
that it is extensible for additional shader backends besides GLSL and
GLASM, and this will work better with a QComboBox.
Qt removes the related assembly shader setting from the Advanced
Graphics section and places it as a new QComboBox in the API Settings
group. This will replace the Vulkan device selector when OpenGL is
selected.
Additionally, mark all of the custom anisotropic filtering settings as
"WILL BREAK THINGS", as that is the case with a select few games.
2021-07-22 21:51:39 -04:00
ameerj
c446ada33e
glsl: Declare local memory in main
2021-07-22 21:51:39 -04:00
ameerj
0810714e46
glsl: Add passthrough geometry shader support
2021-07-22 21:51:39 -04:00
ReinUsesLisp
41b2a991c4
shader: Use std::bit_cast instead of Common::BitCast for passthrough
2021-07-22 21:51:39 -04:00
ReinUsesLisp
362888dcb0
glasm: Add passthrough geometry shader support
2021-07-22 21:51:39 -04:00
ReinUsesLisp
b1df436cef
shader: Rework varyings and implement passthrough geometry shaders
...
Put all varyings into a single std::bitset with helpers to access it.
Implement passthrough geometry shaders using host's.
2021-07-22 21:51:39 -04:00
ReinUsesLisp
649c9cca0f
vk_graphics_pipeline: Implement conservative rendering
2021-07-22 21:51:39 -04:00
ReinUsesLisp
6db3ba6542
shader: Only verify shader when graphics debugging is enabled
2021-07-22 21:51:39 -04:00
ReinUsesLisp
c0705f79b8
shader: Unify shader stage types
2021-07-22 21:51:39 -04:00
lat9nq
0f092f17af
lower_int64_to_int32: Add missing include
2021-07-22 21:51:39 -04:00
ReinUsesLisp
0a75c400e3
shader: Emulate 64-bit integers when not supported
...
Useful for mobile and Intel Xe devices.
2021-07-22 21:51:39 -04:00
ReinUsesLisp
e3df2285ca
shader: Add int64 to int32 lowering pass
2021-07-22 21:51:39 -04:00
ReinUsesLisp
ba211323ab
shader: Teach global memory base tracker to follow vectors
2021-07-22 21:51:39 -04:00
ReinUsesLisp
f54fa4a1f5
shader: Add constant propagation to integer vectors
2021-07-22 21:51:39 -04:00
ameerj
99e8164b43
glsl: Better IAdd Overflow CC fix
...
This ensures the original operand values are not overwritten when being used in the overflow detection.
2021-07-22 21:51:39 -04:00
ReinUsesLisp
f158fe9359
shader: Remove IAbs64
2021-07-22 21:51:39 -04:00
ameerj
516c17d4d3
glsl: Fix IADD CC
2021-07-22 21:51:39 -04:00
ameerj
58a052072c
shader_recompiler: Fix IADD3 input partitioning
2021-07-22 21:51:39 -04:00
ReinUsesLisp
04c1dca457
shader: Move loop safety tests to code emission
2021-07-22 21:51:39 -04:00
ReinUsesLisp
e57f54e582
gl_graphics_pipeline: Fix assembly shaders check for transform feedbacks
2021-07-22 21:51:39 -04:00
ameerj
abade15f5e
glsl: Remove frag color initialization
2021-07-22 21:51:39 -04:00
ameerj
1d99187d4c
glasm: Implement SetAttribute ViewportMask
2021-07-22 21:51:39 -04:00
ReinUsesLisp
2cff04fab9
gl_graphics_pipeline: Inline hash and operator== key functions
2021-07-22 21:51:39 -04:00
ReinUsesLisp
97cfedab70
gl_shader_cache: Check previous pipeline before checking hash map
...
Port optimization from Vulkan.
2021-07-22 21:51:39 -04:00
ReinUsesLisp
40402f3947
gl_graphics_pipeline: Port optimizations from Vulkan pipelines
2021-07-22 21:51:39 -04:00
ameerj
b79424c3bf
emit_glsl_special: Skip initialization of frag_color0
...
Fixes rendering in Devil May Cry without regressing Ori and the Blind Forest.
2021-07-22 21:51:38 -04:00
ReinUsesLisp
d633ec4ecc
shader: Calibrate loop safety threshold
2021-07-22 21:51:38 -04:00
ReinUsesLisp
2cd96376b5
buffer_cache: Fix debugging leftover
2021-07-22 21:51:38 -04:00
Morph
6e8400f165
glsl: Add missing ; in EmitSetSampleMask
...
Fixes shader compilation in Okami HD
2021-07-22 21:51:38 -04:00
ReinUsesLisp
b7cf8e0de4
buffer_cache: Fix size reductions not having in mind bind sizes
...
A buffer binding can change between shaders without changing the
shaders. This lead to outdated bindings on OpenGL.
2021-07-22 21:51:38 -04:00
ameerj
7d20cd7656
glsl: Fix output varying initialization when transform feedback is used
2021-07-22 21:51:38 -04:00
ameerj
c7921c7812
shaders: Allow shader notify when async shaders is disabled
2021-07-22 21:51:38 -04:00
ameerj
633c54a202
texture_pass: Fix is_read image qualification
...
Atomic operations are considered to have both read and write access. This was not being accounted for.
2021-07-22 21:51:38 -04:00
ReinUsesLisp
9c387a270b
shader: Align constant buffer sizes to 16 bytes
...
WAR for AMD reading zeroes on uniform buffers of size 2.
2021-07-22 21:51:38 -04:00
ReinUsesLisp
10f91c42e2
spirv: Properly handle devices without int8 and int16
2021-07-22 21:51:38 -04:00
ReinUsesLisp
fe5fc478e7
spirv: Handle small storage buffer loads on devices with no support
2021-07-22 21:51:38 -04:00
ReinUsesLisp
b3bf0d4ebb
vk_graphics_pipeline: Use VK_KHR_push_descriptor when available
...
~51% faster on Nvidia compared to previous method.
2021-07-22 21:51:38 -04:00
ameerj
45c91da369
glsl: Fix cbuf component indexing bug falback
2021-07-22 21:51:38 -04:00
ReinUsesLisp
16d28031e7
shader: Simplify MergeDualVertexPrograms
2021-07-22 21:51:38 -04:00
ReinUsesLisp
c4a71824d5
shader: Properly manage attributes not written from previous stages
2021-07-22 21:51:38 -04:00
ReinUsesLisp
ebd1146ea7
glsl: Only declare fragment outputs on fragment shaders
2021-07-22 21:51:38 -04:00
ReinUsesLisp
9389e71b12
shader: Split profile and runtime info headers
2021-07-22 21:51:38 -04:00
ReinUsesLisp
52be21495e
shader: Add support for native 16-bit floats
2021-07-22 21:51:38 -04:00
ReinUsesLisp
41c634a7a9
shader: Rename maxwell/program.h to translate_program.h
2021-07-22 21:51:38 -04:00
ReinUsesLisp
a9a5f5b535
vulkan_device: Blacklist VK_EXT_vertex_input_dynamic_state on Intel
2021-07-22 21:51:38 -04:00
ameerj
7a9b23ea70
glsl: Obey need_declared_frag_colors to declare and initialize all frag_color
...
Fixes Ori and the blind forest title screen
2021-07-22 21:51:38 -04:00
ameerj
1d2c13fd7b
glsl: Address rest of feedback
2021-07-22 21:51:38 -04:00
ameerj
52bd1d7788
glsl: Move gl_Position/generic attribute initialization to EmitProlgue
2021-07-22 21:51:38 -04:00
ameerj
bc50a9ef20
glsl: Conditionally use fine/coarse derivatives based on device support
2021-07-22 21:51:38 -04:00
ameerj
4e73fdbd0f
glsl: Cleanup/Address feedback
2021-07-22 21:51:38 -04:00
ameerj
7e661303d5
gl_shader_cache: Implement async shaders
2021-07-22 21:51:38 -04:00
ameerj
d344489b5b
glsl: Add Shader_GLSL logging
2021-07-22 21:51:38 -04:00
ameerj
c44b3f664d
glsl: Add LoopSafety instructions
2021-07-22 21:51:38 -04:00
ameerj
50e1ced397
glsl: Conditionally add EXT_texture_shadow_lod
2021-07-22 21:51:38 -04:00
ameerj
b33af69513
glsl: Add stubs for sparse queries and variable aoffi when not supported
2021-07-22 21:51:38 -04:00
ameerj
3e6f89f964
glsl: Implement legacy varyings
2021-07-22 21:51:38 -04:00
ameerj
18aae22ad2
gl_shader_cache: Remove const from pipeline source arguments
2021-07-22 21:51:38 -04:00
ameerj
07a59e1404
gl_shader_cache: Move OGL shader compilation to the respective Pipeline constructor
2021-07-22 21:51:38 -04:00
ameerj
67cc50be47
glsl: Minor cleanup
2021-07-22 21:51:38 -04:00
ameerj
5e9b073176
glsl: Fix Cbuf getters for F32 type
2021-07-22 21:51:38 -04:00
ameerj
152f718017
glsl: Add immediate index oob checking for Cbuf getters
2021-07-22 21:51:38 -04:00
ameerj
163ce47cb1
glsl: Refactor GetCbuf functions to reduce code duplication
2021-07-22 21:51:38 -04:00
ameerj
7bf5c1164e
glsl: Address more feedback. Implement indexed texture reads
2021-07-22 21:51:38 -04:00
ameerj
73278ba985
glsl: Remove Signed Integer variables
2021-07-22 21:51:38 -04:00
ameerj
5d2cd1551f
glsl: Address Rodrigo's feedback
2021-07-22 21:51:38 -04:00
ameerj
8ab7780015
glsl: Reorganize backend code, remove unneeded [[maybe_unused]]
2021-07-22 21:51:37 -04:00
ameerj
b247baab26
glsl: Implement SampleId and SetSampleMask
...
plus some minor refactoring of implementations
2021-07-22 21:51:37 -04:00
ameerj
a2f864493b
glsl: Add gl_PerVertex in for GS
2021-07-22 21:51:37 -04:00
ameerj
5eb36b0913
glsl: Use existing tracking for enabling EXT_shader_image_load_formatted
2021-07-22 21:51:37 -04:00
ameerj
42ac60591e
glsl: Enable early fragment tests
2021-07-22 21:51:37 -04:00
ameerj
3ad05ecd4e
gl_rasterizer: Add texture fetch barrier for fragments
...
Fixes flicker seen in XC2
2021-07-22 21:51:37 -04:00
ameerj
95aedb5258
glsl: Implement more attribute getters and setters
2021-07-22 21:51:37 -04:00
ameerj
656de6639c
glsl: Implement fswzadd
...
and wip nv thread shuffle impl
2021-07-22 21:51:37 -04:00
ameerj
ccd4becb79
glsl: Implement indexed attribute loads
2021-07-22 21:51:37 -04:00
ameerj
819ae85298
glsl: Conditionally add GL_ARB_sparse_texture2
2021-07-22 21:51:37 -04:00
ameerj
c800b9bf92
glsl: Rebase fixes
2021-07-22 21:51:37 -04:00
ameerj
5292962d7e
glsl: Conditionally use GL_EXT_shader_image_load_formatted
...
Fix for SULD.D
2021-07-22 21:51:37 -04:00
ameerj
6e4ed00e8d
glsl: Remove output generic indexing for geometry stage
2021-07-22 21:51:37 -04:00
ameerj
3319879b23
glsl: Allow dynamic tracking of variable allocation
2021-07-22 21:51:37 -04:00
ameerj
1017c12427
glsl: Implement barriers
2021-07-22 21:51:37 -04:00
ameerj
b3a46a3746
glsl: Implement image atomics and set layer
...
along with some more cleanup/oversight fixes
2021-07-22 21:51:37 -04:00
ameerj
d01344c008
glsl: Fix image gather logic
2021-07-22 21:51:37 -04:00
ameerj
fd55ca9828
glsl: Add cbuf access workaround for devices with component indexing bug
2021-07-22 21:51:37 -04:00
ameerj
8c9d420fa5
glsl: Use textureGrad fallback when EXT_texture_shadow_lod is unsupported
2021-07-22 21:51:37 -04:00
ameerj
f56a276e79
emit_glsl_image: Use immediate offsets when possible
2021-07-22 21:51:37 -04:00
ameerj
8894af7c06
glsl: Fix <32-bit SSBO writes
...
and more cleanup
2021-07-22 21:51:37 -04:00
ameerj
4534294b7b
glsl: Cleanup and address feedback
2021-07-22 21:51:37 -04:00
ameerj
bef3820fb0
glsl: Refactor Global memory functions
2021-07-22 21:51:37 -04:00
ameerj
dfa7abe1e7
glsl: Increase NUM_VARS that can be allocated
...
needed for HW:AoC.
2021-07-22 21:51:37 -04:00
ameerj
2e8da9d3be
glsl: Implement Load/WriteGlobal
...
along with some other misc changes and fixes
2021-07-22 21:51:37 -04:00
ameerj
d19a49485a
glsl: Implement Images
2021-07-22 21:51:37 -04:00
ameerj
0c162d8b17
glsl: skip gl_ViewportIndex write if device does not support it
2021-07-22 21:51:37 -04:00
ameerj
f54240823c
glsl: Implement transform feedback
2021-07-22 21:51:37 -04:00
ameerj
922ea01123
glsl: Yet another gl_ViewportIndex fix attempt
2021-07-22 21:51:37 -04:00
ameerj
1736a7e162
glsl: Add gl_ViewportIndex out attribute
2021-07-22 21:51:37 -04:00
lat9nq
503159f29b
emit_glsl_context_get_set: Remove unused function
2021-07-22 21:51:37 -04:00
ameerj
363e228778
glsl: Fix precise variable declaration
...
and add some more separation in the shader for better debugability when dumped
2021-07-22 21:51:37 -04:00
ameerj
e866cece98
glsl: Implement tessellation shaders
2021-07-22 21:51:37 -04:00
ameerj
5c73bf453c
glsl: Implement ImageGradient and other texture function variants
2021-07-22 21:51:37 -04:00
ameerj
8d8c104d4f
glsl: Fix atomic SSBO offsets
...
and implement misc getters
2021-07-22 21:51:37 -04:00
ameerj
7374a8bf1d
glsl: Implement geometry shaders
2021-07-22 21:51:37 -04:00
ameerj
43426d170c
glsl: Use NotImplemented macro with function name output
2021-07-22 21:51:37 -04:00
ameerj
aa06d8fa05
glsl: Implement gl_ViewportIndex
...
SSBU now working
2021-07-22 21:51:37 -04:00
ameerj
badacf0a7e
glsl: SHFL fix and prefer shift operations over divide in glsl shader
2021-07-22 21:51:37 -04:00
ameerj
00105f0615
glsl: Implement precise fp variable allocation
2021-07-22 21:51:37 -04:00
ameerj
1cc3be2135
HACK glsl: Write defaults to unused generic attributes
2021-07-22 21:51:37 -04:00
ameerj
12b9b923e1
glsl: Fix ssbo indexing and name shadowing between shader stages
2021-07-22 21:51:37 -04:00
ameerj
c6615e9d05
glsl: implement set clip distance
...
and missed a diff in emit_glsl relating to var alloc ref counting
2021-07-22 21:51:37 -04:00
ameerj
33f63cdc22
glsl: Rework var alloc to not assign unused results
2021-07-22 21:51:37 -04:00
ameerj
8185a5ab34
glsl: Rework variable allocator to allow for variable reuse
2021-07-22 21:51:37 -04:00
ameerj
748e56e8a2
glsl: Fix ATOM and implement ATOMS
2021-07-22 21:51:37 -04:00
ameerj
f91616b31a
glsl: Use gl_SubGroupInvocationARB
2021-07-22 21:51:36 -04:00
ameerj
ee44e94932
glsl: Implement VOTE for subgroup size potentially larger
2021-07-22 21:51:36 -04:00
ameerj
5a3864d8c4
glsl: Implement VOTE
2021-07-22 21:51:36 -04:00
ameerj
1e59e72a48
glsl: Implement ST{LS}
2021-07-22 21:51:36 -04:00
ameerj
d7213c862e
glsl: Implement more instructions used by SMO
2021-07-22 21:51:36 -04:00
ameerj
3795c56db6
glsl: Implement more instructions used by SMO
2021-07-22 21:51:36 -04:00
ameerj
26649eb889
glsl: Fix GetAttribute return values
...
fixes font rendering issues as these were used to index into the ssbos
2021-07-22 21:51:36 -04:00
ameerj
8a7d7d16c8
glsl: minor cleanup
2021-07-22 21:51:36 -04:00
ameerj
0ac1a68a36
glsl: Fix and implement rest of cbuf access
2021-07-22 21:51:36 -04:00
ameerj
0b8e65125a
glsl: Implement TXQ and other misc changes
2021-07-22 21:51:36 -04:00
ameerj
5a4af6cf14
glsl: TLD4 implementation
2021-07-22 21:51:36 -04:00
ameerj
81c2595a33
glsl: Implement TLD instruction
2021-07-22 21:51:36 -04:00
ameerj
db039e6271
glsl: Implement TEXS
2021-07-22 21:51:36 -04:00
ameerj
b3253f6f44
glsl: Cleanup texture functions
2021-07-22 21:51:36 -04:00
lat9nq
fc7edccbc1
shader_recompiler: GCC fixes
2021-07-22 21:51:36 -04:00
ameerj
08935e289f
glsl: Implement TEX depth functions
2021-07-22 21:51:36 -04:00
ameerj
b055e4a91e
glsl: Implement TEX ImageSample functions
2021-07-22 21:51:36 -04:00
ameerj
8c9c79a8c6
glsl: Rework Shuffle emit instructions to align with SPIR-V
2021-07-22 21:51:36 -04:00
ameerj
a68609b4f8
glsl: Better Storage access and wip warps
2021-07-22 21:51:36 -04:00
ameerj
a28096cb70
glsl: Fix integer conversions, implement clamp CC
2021-07-22 21:51:36 -04:00
ameerj
fa06331601
glsl: Implement IADD CC
2021-07-22 21:51:36 -04:00
ameerj
54778aa10a
glsl: SSBO access fixes and wip SampleExplicitLod implementation.
2021-07-22 21:51:36 -04:00
ameerj
72974388fb
glsl: WIP var forward declaration
...
to fix Loop control flow.
2021-07-22 21:51:36 -04:00
ameerj
c797a0c5a5
glsl: Fix bindings, add some CC ops
2021-07-22 21:51:36 -04:00
ameerj
e6a0f0f384
glsl: remove unused headers
2021-07-22 21:51:36 -04:00
ameerj
b96d76fa7e
glsl: Implement derivatives and YDirection
...
plus some other misc additions/changed
2021-07-22 21:51:36 -04:00
ameerj
ac6135774f
glsl: Fix non-immediate buffer access
...
and many other misc implementations
2021-07-22 21:51:36 -04:00
ameerj
2328b0b2a8
glsl: textures wip
2021-07-22 21:51:36 -04:00
ameerj
32328acc39
glsl: Implement some attribute getters and setters
2021-07-22 21:51:36 -04:00
ameerj
c8b2a5a4f3
glsl: Track S32 atomics
2021-07-22 21:51:36 -04:00
ameerj
ee45d46f9e
glsl: Update phi node management
2021-07-22 21:51:36 -04:00
ameerj
4eb02b106f
glsl: Fix floating point compare ops
...
Logic for ordered/unordered ops was wrong.
2021-07-22 21:51:36 -04:00
ameerj
ce2ddb7d69
glsl: Query GL Device for FP16 extension support
2021-07-22 21:51:36 -04:00
ameerj
1d88049eaf
glsl: Simply FP storage atomics
2021-07-22 21:51:36 -04:00
ameerj
0adc9d2fc1
glsl: F16x2 storage atomics
2021-07-22 21:51:36 -04:00
ameerj
5fa21197b9
glsl: Revert ssbo aliasing. Storage Atomics impl
2021-07-22 21:51:36 -04:00
ameerj
3d950a8d18
glsl: implement phi nodes
2021-07-22 21:51:36 -04:00
ameerj
659eecb295
glsl: Wip storage atomic ops
2021-07-22 21:51:36 -04:00
ameerj
b3fce08191
glsl: Implement FCMP
2021-07-22 21:51:36 -04:00
ameerj
7febd59ce1
glsl: Add a more robust fp formatter
2021-07-22 21:51:36 -04:00
ameerj
bf40d10805
glsl: More FP fixes
2021-07-22 21:51:36 -04:00
ameerj
d7656077bf
glsl: FP function fixes
2021-07-22 21:51:36 -04:00
ameerj
30f47ec831
glsl: More FP instructions/fixes
2021-07-22 21:51:36 -04:00
ameerj
1dae770c9d
glsl: Add many FP32/64 instructions
2021-07-22 21:51:36 -04:00
ReinUsesLisp
fc7cb28bc7
glsl: Fixup build issues
2021-07-22 21:51:36 -04:00
ameerj
1df4541247
glsl: Implement more Integer ops
2021-07-22 21:51:36 -04:00
ameerj
fc36d45a97
glsl: Implement BF*
2021-07-22 21:51:36 -04:00
ameerj
eea0726cd5
glsl: Implement a few Integer instructions
2021-07-22 21:51:36 -04:00
ameerj
0c315dae67
glsl: Use std::string_view for Emit function args.
2021-07-22 21:51:35 -04:00
ameerj
b2cd8e4588
glsl: Pass IR::Inst& to Emit functions
2021-07-22 21:51:35 -04:00
ameerj
c01220d25a
glsl: INeg and IAdd negate tests
2021-07-22 21:51:35 -04:00
ameerj
6ee142d3e4
glsl: Reusable typed variables. IADD32
2021-07-22 21:51:35 -04:00
ameerj
690e6a79c7
glsl: Fix program linking and cbuf
2021-07-22 21:51:35 -04:00
ameerj
3355c467e0
glsl: Fix "reg" allocing
...
based on glasm with some tweaks
2021-07-22 21:51:35 -04:00
ameerj
fda83fe3c5
glsl: Initial backend
2021-07-22 21:51:35 -04:00
ReinUsesLisp
04fed81921
spirv: Reduce log severity of mismatching denorm rules
2021-07-22 21:51:35 -04:00
ReinUsesLisp
574a99b9b3
shader: Fix loop safety to SSA pass
2021-07-22 21:51:35 -04:00
ReinUsesLisp
eb7925b421
vk_rasterizer: Exit render passes on fragment barriers
2021-07-22 21:51:35 -04:00
Rodrigo Locatti
0ce45868ca
vk_graphics_pipeline: Fix path with no VK_EXT_extended_dynamic_state
2021-07-22 21:51:35 -04:00
ReinUsesLisp
ee69b7aa59
buffer_cache: Invalidate fast buffers on compute
2021-07-22 21:51:35 -04:00
ReinUsesLisp
f40daa777e
shader: Add logging
2021-07-22 21:51:35 -04:00
lat9nq
3a70b6c79b
shader: Add shader loop safety check settings
...
Also add a setting for enable Nsight Aftermath.
2021-07-22 21:51:35 -04:00
ReinUsesLisp
a56f9f4322
shader: Comment why the array component is not read in TMML
2021-07-22 21:51:35 -04:00
ReinUsesLisp
59a989f149
vulkan_device: Enable VK_EXT_vertex_input_dynamic_state
2021-07-22 21:51:35 -04:00
ReinUsesLisp
cefa403eba
vk_pipeline_cache: Skip cached pipelines with different dynamic state
2021-07-22 21:51:35 -04:00
ameerj
87a78640d7
main: Fix Open Transferable Shader Cache context item
...
Opens the new shader cache directory location for the specified title, if it exists.
2021-07-22 21:51:35 -04:00
ameerj
4c1067ef1c
tmml: Remove index component from coords vec
...
The lod query functions exposed by the rendering API's do not make use of the texturearray layer indexing.
2021-07-22 21:51:35 -04:00
ReinUsesLisp
1805ba1763
vulkan: Add VK_EXT_vertex_input_dynamic_state support
...
Reduces the number of total pipelines generated on Vulkan.
Tested on Super Smash Bros. Ultimate.
2021-07-22 21:51:35 -04:00
ReinUsesLisp
8fae35f767
shader: Reorder shader cache directories
2021-07-22 21:51:35 -04:00
ReinUsesLisp
2e99f9ce1b
vk_rasterizer: Implement first index
2021-07-22 21:51:35 -04:00
ReinUsesLisp
969f76707c
vulkan: Use VK_EXT_provoking_vertex when available
2021-07-22 21:51:35 -04:00
ameerj
60b33bdc9f
spirv/convert: Catch more signed operations oversights
...
The sign bit on integers of size < 32 was not properly preserved in casts
2021-07-22 21:51:35 -04:00
ReinUsesLisp
4fedf2c20a
spirv/convert: Catch more broken signed operations on Nvidia OpenGL
...
BitCast U32 to S32 before converting to float on drivers with broken
signed operations.
2021-07-22 21:51:35 -04:00
ameerj
6e65f16895
gl_buffer_cache: Use unorm internal formats for snorm texture buffer views
...
Fixes black textures in UE4 games
2021-07-22 21:51:35 -04:00
ReinUsesLisp
09c4a71dd4
shader_environment: Fix local memory size calculations
2021-07-22 21:51:35 -04:00
ReinUsesLisp
5292190c8d
buffer_cache: Fix copy based uniform bindings tracking
2021-07-22 21:51:35 -04:00
ameerj
1bbecac1d2
shader_environment: Add shader_local_memory_crs_size to local memory size
...
Fixes DOOM 2016 missing local memory
2021-07-22 21:51:35 -04:00
ReinUsesLisp
8393ea343f
gl_texture_cache: Create image storage views
...
Fixes SULD.D tests.
2021-07-22 21:51:35 -04:00
ReinUsesLisp
0b6f8eea5a
gl_shader_util: Move shader utility code to a separate file
2021-07-22 21:51:35 -04:00
ReinUsesLisp
ca6dbc7c49
gl_shader_cache: Store workers in shader cache object
2021-07-22 21:51:35 -04:00
ReinUsesLisp
b420b97025
vk_pipeline_cache,shader_notify: Add shader notifications
2021-07-22 21:51:35 -04:00
ReinUsesLisp
1dccf005e1
vk_pipeline_cache: Add asynchronous shaders
2021-07-22 21:51:35 -04:00
ReinUsesLisp
420ec60284
vk_rasterizer: Flush work on clear and dispatches
2021-07-22 21:51:34 -04:00
FernandoS27
72c3d368cf
DMA: Restrict optimised path for BlockToLinear further.
2021-07-22 21:51:34 -04:00
ReinUsesLisp
41737ccae4
vk_swapchain: Handle outdated swapchains
...
Fixes pixelated presentation on Intel devices.
2021-07-22 21:51:34 -04:00
FernandoS27
be4d1c9b95
shader: Fix VertexA Shaders.
2021-07-22 21:51:34 -04:00
ReinUsesLisp
64dfb4220f
shader: Add 2D and 3D variants to SUATOM and SURED
...
Used by Claybook.
2021-07-22 21:51:34 -04:00
ReinUsesLisp
73fb56fe7e
vk_buffer_cache: Handle null texture buffers
...
Fixes a crash on Age of Calamity cutscenes.
2021-07-22 21:51:34 -04:00
ReinUsesLisp
11fab60557
nsight_aftermath_tracker: Fix SPIR-V module writes
2021-07-22 21:51:34 -04:00
ReinUsesLisp
99e3490f64
vk_pipeline_cache: Set support_derivative_control to true
2021-07-22 21:51:34 -04:00
ReinUsesLisp
1dd4302fac
shader: Avoid CPU side undefined behavior on I2F
2021-07-22 21:51:34 -04:00
ReinUsesLisp
5fa6d7a3b9
glasm: Use ARB_derivative_control conditionally
2021-07-22 21:51:34 -04:00
ReinUsesLisp
535fb4e6b5
buffer_cache: Reduce uniform buffer size from shader usage
...
Increases performance significantly on certain titles.
2021-07-22 21:51:34 -04:00
ReinUsesLisp
914bc0deb9
transform_feedback: Read buffer stride from index instead of layout
2021-07-22 21:51:34 -04:00
ReinUsesLisp
bbc537fec0
fixed_pipeline_state: Use regular for loop instead of ranges for perf
...
MSVC generates better code for it.
2021-07-22 21:51:34 -04:00
ReinUsesLisp
5593b029d4
vk_swapchain: Avoid recreating the swapchain on each frame
...
Recreate only when requested (or sRGB is changed) instead of tracking
the frontend's size. That size is still used as a hint.
2021-07-22 21:51:34 -04:00
lat9nq
6e9eab2c32
emit_glasm_context_get_set: Remove unused variable
2021-07-22 21:51:34 -04:00
ReinUsesLisp
34d1a2ffe5
shader,glasm: Implement legacy texcoord loads
2021-07-22 21:51:34 -04:00
ReinUsesLisp
b9a0a742fa
glasm: Implement legacy varyings
2021-07-22 21:51:34 -04:00
ReinUsesLisp
bebebf3fa8
shader: Track legacy varyings
2021-07-22 21:51:34 -04:00
ReinUsesLisp
4744a21bd4
shader: Add support for "negative" and unaligned offsets
...
"Negative" offsets don't exist. They are shown as such due to a bug in
nvdisasm.
Unaligned offsets have been proved to read the aligned offset. For
example, when reading an U32, if the offset is 6, the offset read will
be 4.
2021-07-22 21:51:34 -04:00
ReinUsesLisp
e3aedea124
shader: Implement ISCADD32I
2021-07-22 21:51:34 -04:00
ReinUsesLisp
d27dbec3e6
spirv: Fix output generics with components
2021-07-22 21:51:34 -04:00
ReinUsesLisp
ccea376e34
vulkan: Conditionally use shaderInt16
...
Add support for Polaris AMD devices.
2021-07-22 21:51:34 -04:00
ReinUsesLisp
7207ef07f4
vulkan: Enable depth bounds and use it conditionally
...
Intel devices pre-Xe don't support this.
2021-07-22 21:51:34 -04:00
ReinUsesLisp
e7bf692f9e
vk_buffer_cache: Add transform feedback usage to buffers
2021-07-22 21:51:34 -04:00
ReinUsesLisp
9750e0410b
opengl: Declare fragment outputs even if they are not used
...
Fixes Ori and the Blind Forest's menu on GLASM. For some reason
(probably high level optimizations) it is not sanitized on SPIR-V for
OpenGL. Vulkan is unaffected by this change.
2021-07-22 21:51:34 -04:00
ReinUsesLisp
ebfbb5e09f
buffer_cache: Mark uniform buffers as dirty if any enable bit changes
2021-07-22 21:51:34 -04:00
ReinUsesLisp
142d4f3f6e
shader: Always initialize up reference in structure control flow
...
Fixes ubsan issue.
2021-07-22 21:51:34 -04:00
ReinUsesLisp
ae786ee784
vulkan_device: Enable float64 and int64 conditionally
...
Add Intel Xe support.
2021-07-22 21:51:34 -04:00
ReinUsesLisp
6e475617d5
shader: Fix ImageWrite indexing
2021-07-22 21:51:34 -04:00
ReinUsesLisp
f7508aa014
spirv: Fix image and image buffer descriptor index usage
2021-07-22 21:51:34 -04:00
ReinUsesLisp
bd96e0a436
glasm: Fix immediate texture coordinate
2021-07-22 21:51:34 -04:00
ReinUsesLisp
74df00415a
shader: Clang-format secondary textures
2021-07-22 21:51:34 -04:00
ReinUsesLisp
f19403bafa
shader: Fix secondary textures
2021-07-22 21:51:34 -04:00
ameerj
6bb1f54fbb
shader: Adhere to disk shader cache setting
2021-07-22 21:51:34 -04:00
ReinUsesLisp
8ea552e64e
shader: Fix TMML queries
2021-07-22 21:51:34 -04:00
ReinUsesLisp
ca3e927e35
shader: Fix FSwizzleAdd folding when going through phi nodes
2021-07-22 21:51:34 -04:00
ReinUsesLisp
7ad72d78dd
shader/exception: Fix compilation errors on gcc
2021-07-22 21:51:34 -04:00
ReinUsesLisp
1a02dee23a
glasm: Reduce reg allocation leaks from an exception to a log
2021-07-22 21:51:34 -04:00
ReinUsesLisp
60e44af24d
texture_cache: Reduce invalid image/sampler error severity
2021-07-22 21:51:34 -04:00
ReinUsesLisp
672930b6c8
shader: Handle host exceptions
2021-07-22 21:51:34 -04:00
ReinUsesLisp
50e491f101
glasm: Use integer lod for TXQ
2021-07-22 21:51:33 -04:00
ReinUsesLisp
e3d10ba821
glasm: Prepare XFB from state instead of global registers
2021-07-22 21:51:33 -04:00
ReinUsesLisp
5339775f96
glasm: Fix global memory fallbacks
2021-07-22 21:51:33 -04:00
ReinUsesLisp
0ca75be20a
Revert "glasm: Skip phi moves on undefined instructions"
...
Causes regressions on Bowser's Fury.
2021-07-22 21:51:33 -04:00
ReinUsesLisp
e607d856c2
glasm: Remove unintentional '\n' on Undef32
2021-07-22 21:51:33 -04:00
ReinUsesLisp
df14567fcc
glasm: Use storage buffers instead of global memory when possible
2021-07-22 21:51:33 -04:00
ReinUsesLisp
ec19b0d7eb
glasm: Implement Y direction
2021-07-22 21:51:33 -04:00
ReinUsesLisp
459e3b17e6
glasm: Skip phi moves on undefined instructions
2021-07-22 21:51:33 -04:00
ReinUsesLisp
91a375b557
glasm: Implement undef instructions
2021-07-22 21:51:33 -04:00
ReinUsesLisp
93b8943fae
glasm: Fix global memory callbacks
2021-07-22 21:51:33 -04:00
ReinUsesLisp
58b5083052
gl_shader_cache: Add disk shader cache
2021-07-22 21:51:33 -04:00
ReinUsesLisp
205bf15e71
video_core,shader: Clang-format fixes
2021-07-22 21:51:33 -04:00
ReinUsesLisp
ddb24146b6
gl_shader_cache: Rename Program abstractions into Pipeline
2021-07-22 21:51:33 -04:00
ReinUsesLisp
3e5b0c116d
glasm: Release phi node registers after they are no longer needed
2021-07-22 21:51:33 -04:00
ReinUsesLisp
d284ce48e2
glasm: Remove unintentionally committed fmt::prints
2021-07-22 21:51:33 -04:00
ReinUsesLisp
8d77a943cc
glasm: Fix INeg32 on negative immediates
2021-07-22 21:51:33 -04:00
ReinUsesLisp
42a91d4366
glasm: Remove unnecessary value types
2021-07-22 21:51:33 -04:00
ReinUsesLisp
6bf6015548
glasm: Throw when there are register leaks
2021-07-22 21:51:33 -04:00
ReinUsesLisp
143db4b112
glasm: Catch more register leaks
...
Add support for null registers. These are used when an instruction has
no usages.
This comes handy when an instruction is only used for its CC value, with
the caveat of having to invalidate all pseudo-instructions before
defining the instruction itself in the register allocator. This commits
changes this.
Workaround a bug on Nvidia's condition codes conditional execution using
branches.
2021-07-22 21:51:33 -04:00
ReinUsesLisp
a5ce5f4a65
glasm: Fix usage counting on phi nodes
2021-07-22 21:51:33 -04:00
ReinUsesLisp
921b6b48be
gl_shader_cache: Do not flip tessellation on OpenGL
2021-07-22 21:51:33 -04:00
ReinUsesLisp
548871e127
gl_graphics_program: Fix texture buffer bindings
2021-07-22 21:51:33 -04:00
ReinUsesLisp
09ad2b5994
glasm: Implement global memory fallbacks
2021-07-22 21:51:33 -04:00
ReinUsesLisp
46edc93371
glasm: Implement int64 add and subtract
2021-07-22 21:51:33 -04:00
lat9nq
90e2710052
emit_glasm_context_get_set: Remove unused variable
2021-07-22 21:51:33 -04:00
ReinUsesLisp
e9a5390a92
glasm: Implement indirect attribute loads
2021-07-22 21:51:33 -04:00
ReinUsesLisp
2e2d1986b1
glasm: Implement image atomics
2021-07-22 21:51:33 -04:00
ReinUsesLisp
9a2176f883
glasm: Reorder unreachable image atomic insts
...
Reorder them to the bottom of the file for readability.
2021-07-22 21:51:33 -04:00
ReinUsesLisp
26ba81b9bf
glasm: Implement gl_Layer stores
2021-07-22 21:51:33 -04:00
ReinUsesLisp
dd41025472
glasm: Implement SampleId
2021-07-22 21:51:33 -04:00
ReinUsesLisp
5f9dd18113
glasm: Implement IsHelperInvocation
2021-07-22 21:51:33 -04:00
ReinUsesLisp
b0b43d2a66
glasm: Fix EmitVertex's optimization
2021-07-22 21:51:33 -04:00
ReinUsesLisp
712afb51d4
gl_shader_cache: Conditionally use viewport mask
2021-07-22 21:51:33 -04:00
ReinUsesLisp
94d3b4d7e3
gl_shader_cache,glasm: Conditionally use typeless image reads extension
2021-07-22 21:51:33 -04:00
ReinUsesLisp
8aa7240b7f
gl_shader_cache: Improve GLASM error print logic
2021-07-22 21:51:33 -04:00
ReinUsesLisp
16c95ab56d
glasm: Implement forced early Z
2021-07-22 21:51:33 -04:00
ReinUsesLisp
220e679fdf
glasm: Set transform feedback state
2021-07-22 21:51:33 -04:00
ReinUsesLisp
06ae1bff4b
video_core: Abstract transform feedback translation utility
2021-07-22 21:51:33 -04:00
ReinUsesLisp
9960abf482
glasm: Simplify patch reads
2021-07-22 21:51:33 -04:00
ReinUsesLisp
8499797b68
glasm: Fix output patch reads
...
With this, Luigi's Mansion's sand renders properly.
2021-07-22 21:51:33 -04:00
ReinUsesLisp
c45503bcb7
gl_shader_cache: Pass shader runtime information
2021-07-22 21:51:33 -04:00
ReinUsesLisp
9452fe2dc6
shader: Split profile and runtime information in separate structs
2021-07-22 21:51:33 -04:00
ameerj
22f261e954
emit_glasm_context_get_and_set.cpp: Add missing semicolons
2021-07-22 21:51:33 -04:00
ReinUsesLisp
83ff44531b
glasm: Fix patch attribute declarations
2021-07-22 21:51:33 -04:00
ameerj
68fb25a223
glasm: Implement FSWZADD
2021-07-22 21:51:33 -04:00
ReinUsesLisp
8fa82725d1
glasm: Implement PrimitiveId attribute read
2021-07-22 21:51:33 -04:00
ReinUsesLisp
62f0368ce4
glasm: Implement clip distance stores
2021-07-22 21:51:32 -04:00
ReinUsesLisp
7d0baaa1c9
glasm: Fix tessellation input attributes
2021-07-22 21:51:32 -04:00
ReinUsesLisp
35db68e859
glasm: Add missing semicolon on tesscoord reading
2021-07-22 21:51:32 -04:00
ReinUsesLisp
53705226c6
glasm: Fix tessellation headers
2021-07-22 21:51:32 -04:00
ReinUsesLisp
e8289a4e5f
glasm: Add tessellation shader declarations
2021-07-22 21:51:32 -04:00
ReinUsesLisp
539a4ef59c
glasm: Implement TessellationEvaluationPoint
2021-07-22 21:51:32 -04:00
ReinUsesLisp
d4bc962012
gl_shader_manager: Zero initialize current assembly programs
2021-07-22 21:51:32 -04:00
ReinUsesLisp
bde1749606
gl_shader_manager: Remove unintentionally committed #pragma
2021-07-22 21:51:32 -04:00
ReinUsesLisp
2e5002f0bf
glasm: Implement patch memory
2021-07-22 21:51:32 -04:00
ReinUsesLisp
deb47706e9
glasm: Fix InvocationId declaration
2021-07-22 21:51:32 -04:00
ReinUsesLisp
24e3128420
glasm: Implement InvocationId
2021-07-22 21:51:32 -04:00
ReinUsesLisp
8db0554dc6
glasm: Optimize EmitVertex into EMIT
2021-07-22 21:51:32 -04:00
ReinUsesLisp
2268a150ce
glasm: Implement geometry shader attribute reads
2021-07-22 21:51:32 -04:00
ReinUsesLisp
2c0780b9fa
glasm: Properly declare attributes on geometry programs
2021-07-22 21:51:32 -04:00
ReinUsesLisp
1efc77e510
glasm: Declare geometry program headers
2021-07-22 21:51:32 -04:00
ReinUsesLisp
1ec230efae
renderer_opengl: State track compute assembly programs
2021-07-22 21:51:32 -04:00
ReinUsesLisp
e21983ce24
renderer_opengl: State track assembly programs
2021-07-22 21:51:32 -04:00
ReinUsesLisp
bbc4c8e6b6
glasm: Fix potential aliasing bug on cube array samples
2021-07-22 21:51:32 -04:00
ReinUsesLisp
ea029df649
glasm: Implement ImageWrite
2021-07-22 21:51:32 -04:00
ReinUsesLisp
96d2dd78b0
glasm: Implement ImageRead
2021-07-22 21:51:32 -04:00
ReinUsesLisp
1426ed05b0
glasm: Implement EmitVertex and EndPrimitive
2021-07-22 21:51:32 -04:00
ReinUsesLisp
9c318fe58b
glasm: Implement ImageGradient
2021-07-22 21:51:32 -04:00
ReinUsesLisp
d95e33ac44
glasm: Implement 64-bit shifts
2021-07-22 21:51:32 -04:00
ReinUsesLisp
65e81c75e9
glasm: Implement barriers
2021-07-22 21:51:32 -04:00
ReinUsesLisp
e63efa1b56
glasm: Fix compute stage name
2021-07-22 21:51:32 -04:00
ReinUsesLisp
e59778c5e5
glasm: Fix phi instruction types
2021-07-22 21:51:32 -04:00
ReinUsesLisp
6493d900ce
glasm: Implement PREC on relevant instructions
2021-07-22 21:51:32 -04:00
ReinUsesLisp
601f7bfd00
glasm: Implement stores to gl_ViewportIndex
2021-07-22 21:51:32 -04:00
ReinUsesLisp
0f180aaaa8
glasm: Implement gl_PointSize stores
2021-07-22 21:51:32 -04:00
ReinUsesLisp
05bd52b119
glasm: Implement gl_PointCoord
2021-07-22 21:51:32 -04:00
ReinUsesLisp
9dfad89884
glasm: Implement ImageQueryLod
2021-07-22 21:51:32 -04:00
ReinUsesLisp
1e64cbd23a
glasm: Implement ImageFetch
2021-07-22 21:51:32 -04:00
ameerj
a9a9dddd34
glasm: Implement IADD.CC
2021-07-22 21:51:32 -04:00
ReinUsesLisp
abcdcde851
glasm: Implement BFE.CC
2021-07-22 21:51:32 -04:00
ReinUsesLisp
cfa232a5a5
glasm: Implement SelectU1
2021-07-22 21:51:32 -04:00
ReinUsesLisp
5d24aadff0
HACK: Bind stages before and after bindings
...
Works around a bug where program parameters are only applied to the
current stage, and this one wasn't bound at the moment.
Affects all SSBO usages on GLASM.
2021-07-22 21:51:32 -04:00
ReinUsesLisp
089e3a82b3
glasm: Implement gl_WorkGroupID
2021-07-22 21:51:32 -04:00
ReinUsesLisp
50dda4164a
glasm: Implement TXQ and improve texture info reads
2021-07-22 21:51:32 -04:00
ReinUsesLisp
bf1ad74e8a
glasm: Implement gl_FrongFacing attribute
2021-07-22 21:51:32 -04:00
ReinUsesLisp
0c82ee3444
glasm: Support textures used in more than one stage
2021-07-22 21:51:32 -04:00
ReinUsesLisp
e4835094aa
glasm: Implement textureGather instructions
2021-07-22 21:51:32 -04:00
ReinUsesLisp
98b4463dbb
glasm: Implement gl_FragDepth and gl_SampleMask stores
2021-07-22 21:51:32 -04:00
ReinUsesLisp
c455c92d76
glasm: Do not alias ConditionRef for now
...
Immediate condition refs where not handled correctly. Just move the
value for now.
2021-07-22 21:51:32 -04:00
ReinUsesLisp
5c6dc51c69
shader: Read branch conditions from an instruction
...
Fixes the identity removal pass.
2021-07-22 21:51:32 -04:00
ReinUsesLisp
43bca14217
glasm: Implement InstanceId and VertexId
2021-07-22 21:51:31 -04:00
ReinUsesLisp
7c24546332
glasm: Add missing return value on move assignment
2021-07-22 21:51:31 -04:00
ReinUsesLisp
64039f6f4b
glasm: Fix aliased bitcasts ref counting
2021-07-22 21:51:31 -04:00
ReinUsesLisp
03fc0f42c6
glasm: Remove unintentional comma on vector insert
2021-07-22 21:51:31 -04:00
ReinUsesLisp
0b3a3f35e8
glasm: Implement TEX and TEXS instructions
...
Remove lod clamp from texture instructions with lod, as this is not
needed (nor supported).
2021-07-22 21:51:31 -04:00
ReinUsesLisp
3d82b30141
glasm: Add support for non-2D texture samples
2021-07-22 21:51:31 -04:00
ReinUsesLisp
9ddbdd90e1
glasm: Reorder unreachable image instructions to the bottom
2021-07-22 21:51:31 -04:00
ReinUsesLisp
771490ebac
glasm: Add support for texture offsets
2021-07-22 21:51:31 -04:00
ReinUsesLisp
009721f477
glasm: Improve texture sampling instructions
2021-07-22 21:51:31 -04:00
ReinUsesLisp
22fb9cc538
emit_glasm: Enable ARB_draw_buffers when needed
2021-07-22 21:51:31 -04:00
ReinUsesLisp
059e91d5da
emit_glasm: Add support for reading position attributes
2021-07-22 21:51:31 -04:00
lat9nq
69210028b4
shader_recompiler: GCC fixes
...
Fixes members of unnamed union not being accessible, and one function
without a declaration.
2021-07-22 21:51:31 -04:00
ameerj
be403ea956
glasm: Implement rest of shared mem
2021-07-22 21:51:31 -04:00
ReinUsesLisp
e45e4d02d3
opengl: Initial (broken) support to GLASM shaders
2021-07-22 21:51:31 -04:00
ReinUsesLisp
f2ab3993eb
shader: Use a non-trivial dummy to construct ASL node union
2021-07-22 21:51:31 -04:00
ReinUsesLisp
6be1db8873
emit_spirv: Jump to loop body with local variable
...
Silence unused variable warning
2021-07-22 21:51:31 -04:00
ReinUsesLisp
87c847ddc3
glasm: Implement derivative instructions on GLASM
2021-07-22 21:51:31 -04:00
ReinUsesLisp
6a524ebac6
glasm: Initial (broken) implementation of TEX on GLASM
2021-07-22 21:51:31 -04:00
ReinUsesLisp
b31edad7a9
glasm: Implement some graphics instructions on GLASM
2021-07-22 21:51:31 -04:00
ReinUsesLisp
58cf7baaea
glasm: Add Void type to GLASM values
2021-07-22 21:51:31 -04:00
ReinUsesLisp
6758e3d946
glasm: Add graphics specific shader declarations to GLASM
2021-07-22 21:51:31 -04:00
ameerj
d0c4cca02d
glasm: Implement local memory for glasm
2021-07-22 21:51:31 -04:00
ReinUsesLisp
cb344497a7
emit_spirv: Add missing block in case
2021-07-22 21:51:31 -04:00
ReinUsesLisp
f2ae32fa76
glasm: Initial implementation of phi nodes on GLASM
2021-07-22 21:51:31 -04:00
ReinUsesLisp
55a293a9c8
glasm: Write result to scalar on integer comparison instructions
2021-07-22 21:51:31 -04:00
ReinUsesLisp
ffdaa42529
glasm: Declare NV_shader_thread_group when needed
2021-07-22 21:51:31 -04:00
ReinUsesLisp
f132d214a1
vk_update_descriptor: Properly initialize payload on the update descriptor queue
2021-07-22 21:51:31 -04:00
ReinUsesLisp
03f6d424ce
glasm: Rework control flow introducing a syntax list
...
This commit regresses VertexA shaders, their transformation pass has to
be adapted to the new control flow.
2021-07-22 21:51:31 -04:00
ameerj
8a556b49cf
glasm: Implement Storage atomics
...
StorageAtomicExchangeU64 is failing test seemingly due to failure storing 64-bit
result into the register
2021-07-22 21:51:31 -04:00
ReinUsesLisp
8331e533f4
glasm: Ensure reg alloc order across compilers on GLASM
...
Use a struct constructor to serialize register allocation arguments to
ensure registers are allocated in the same order regardless of the
compiler used.
The A and B functions can be called in any order when passed as
arguments to "foo":
foo(A(), B())
But the order is guaranteed for curly-braced constructor calls in
classes:
Foo{A(), B()}
Use this to get consistent behavior.
2021-07-22 21:51:31 -04:00
ReinUsesLisp
d9a11b2388
glasm: Enable unintentionally disabled register aliasing on GLASM
2021-07-22 21:51:31 -04:00
ReinUsesLisp
3e7dbc81f5
glasm: Review all GLASM insts to be aware of register aliasing
2021-07-22 21:51:31 -04:00
ReinUsesLisp
7273fcab95
glasm: Implement shuffle and vote instructions on GLASM
2021-07-22 21:51:31 -04:00
ReinUsesLisp
3e0e8c952d
glasm: Add MUFU instructions to GLASM
2021-07-22 21:51:31 -04:00
ReinUsesLisp
8a77a1426b
glasm: Implement IAbs64 and INeg64 on GLASM
2021-07-22 21:51:31 -04:00
ReinUsesLisp
cef625a9b2
shader: Add floating-point rounding to I2F
2021-07-22 21:51:31 -04:00
ReinUsesLisp
00a7d4add9
glasm: Properly clamp Fp64 on GLASM
2021-07-22 21:51:31 -04:00
ReinUsesLisp
cfff5bad59
glasm: Fix register allocation when moving immediate on GLASM
2021-07-22 21:51:31 -04:00
ReinUsesLisp
c5055cade9
glasm: Implement SelectU64 on GLASM
2021-07-22 21:51:31 -04:00
ReinUsesLisp
56b7f92b56
glasm: Fix clamps so the min value has priority on NAN on GLASM
2021-07-22 21:51:31 -04:00
ReinUsesLisp
b5b5006016
glasm: Fix moving U64 immediates to registers in GLASM
2021-07-22 21:51:31 -04:00
ameerj
55801889e1
glasm: Implement storage atomic ops
2021-07-22 21:51:31 -04:00
ReinUsesLisp
cbac486530
glasm: Add conversion instructions to GLASM
2021-07-22 21:51:31 -04:00
ReinUsesLisp
db3a10b384
glasm: Add fp min/max insts and fix store for fp64 on GLASM
2021-07-22 21:51:31 -04:00
ReinUsesLisp
763b4a8b16
glasm: Add logical instructions on GLASM
2021-07-22 21:51:31 -04:00
ReinUsesLisp
1f320a9d79
glasm: Remove duplicated Fp64 pack instructions on GLASM
2021-07-22 21:51:30 -04:00
ReinUsesLisp
06bd9acf07
glasm: Remove unnecesary new white space on Clamp GLASM
2021-07-22 21:51:30 -04:00
ReinUsesLisp
45be6d11cc
glasm: Add floating-point comparisons on GLASM
2021-07-22 21:51:30 -04:00
ameerj
fd6393cb14
emit_glasm: Implement more integer alu ops
2021-07-22 21:51:30 -04:00
ameerj
c13b6d8f86
glasm: Reimplement bitwise ops and BFI/BFE
2021-07-22 21:51:30 -04:00
ReinUsesLisp
fc009ca296
glasm: Initial GLASM fp64 support
2021-07-22 21:51:30 -04:00
ReinUsesLisp
8de3f88656
glasm: Implement GLASM fp16 packing and move bitwise insns
2021-07-22 21:51:30 -04:00
ReinUsesLisp
de15d41257
glasm: Remove unused functions left from rebase
2021-07-22 21:51:30 -04:00
ReinUsesLisp
7101c374c7
glasm: Specify namespace when using FormatTo
2021-07-22 21:51:30 -04:00
ReinUsesLisp
8d20355a93
glasm: Implement more GLASM composite instructions
2021-07-22 21:51:30 -04:00
ReinUsesLisp
d5c0c34383
vk_pipeline_cache: Enable int8 and int16 types on Vulkan
2021-07-22 21:51:30 -04:00
ReinUsesLisp
04ed27a997
glasm: Make GLASM aware of types
2021-07-22 21:51:30 -04:00
ameerj
94ee083286
glasm: Use CMP.S for Select32
...
also fixes ADD and SUB to use U modifier
2021-07-22 21:51:30 -04:00
ameerj
b27f30fa2e
glasm: Implement more logical ops
2021-07-22 21:51:30 -04:00
ameerj
779ff6918b
glasm: Implement BFI, BFE
...
Along with implementations of common instructions along the way
2021-07-22 21:51:30 -04:00
ReinUsesLisp
9d7312e780
glasm: Use BitField instead of C bitfields
2021-07-22 21:51:30 -04:00
ReinUsesLisp
fdd87ffdb7
glasm: Remove unused argument in identity instructions on GLASM
2021-07-22 21:51:30 -04:00
ReinUsesLisp
33a769ea26
gl_rasterizer: Flush L2 caches before glFlush on GLASM
2021-07-22 21:51:30 -04:00
ReinUsesLisp
826796b51f
glasm: Initial GLASM compute implementation for testing
2021-07-22 21:51:30 -04:00
ReinUsesLisp
6c0a696179
glasm: Implement basic GLASM instructions
2021-07-22 21:51:30 -04:00
ReinUsesLisp
03f17ebc43
glasm: Changes to GLASM register allocator and emit context
2021-07-22 21:51:30 -04:00
ReinUsesLisp
99ae172ef2
vk_scheduler: Use locks instead of SPSC a queue
...
This tries to fix a data race where we'd wait forever for the GPU.
2021-07-22 21:51:30 -04:00
ReinUsesLisp
3fca53bce8
vk_query_cache: Wait before reading queries
2021-07-22 21:51:30 -04:00
ReinUsesLisp
dbe29b8bb6
vk_master_semaphore: Use fetch_add to increase master semaphore tick
2021-07-22 21:51:30 -04:00
ReinUsesLisp
d9b9c10f32
glasm: Add GLASM backend infrastructure
2021-07-22 21:51:30 -04:00
ameerj
a739b6933e
shader: ISET.X implementation
2021-07-22 21:51:30 -04:00
ReinUsesLisp
947a36e79e
gl_shader_cache: Remove code unintentionally committed
2021-07-22 21:51:30 -04:00
ReinUsesLisp
75adb54e79
shader: Fixup SPIR-V emit header namespaces
2021-07-22 21:51:30 -04:00
ReinUsesLisp
055db41f19
Move SPIR-V emission functions to their own header
2021-07-22 21:51:30 -04:00
FernandoS27
007a11014c
shader: Optimize NVN Fallthrough
2021-07-22 21:51:30 -04:00
FernandoS27
fb20effc51
shader: Stub SR_AFFINITY
2021-07-22 21:51:30 -04:00
ameerj
455872a4af
shader: Implement Int32 SUATOM/SURED
2021-07-22 21:51:30 -04:00
ReinUsesLisp
5ca5988c63
shader: Initial OpenGL implementation
2021-07-22 21:51:30 -04:00
ReinUsesLisp
5ad12292a6
spirv: Be aware of NAN unaware drivers
2021-07-22 21:51:30 -04:00
ReinUsesLisp
21a5bd332c
spirv: Add SSBO read fallbacks when no aliasing is available
2021-07-22 21:51:29 -04:00
ReinUsesLisp
1922cbb84c
spirv: Add OpKill fallback to demote
2021-07-22 21:51:29 -04:00
ReinUsesLisp
d2e6291c0e
spirv: Do not enable ShaderLayer
...
This is enabled by an extension instead of the capability.
2021-07-22 21:51:29 -04:00
ReinUsesLisp
b2fe282ad3
spirv: Enable DemoteToHelperInvocationEXT only when supported
2021-07-22 21:51:29 -04:00
ReinUsesLisp
2ee532c9bc
spirv: Use OriginLowerLeft when requested
2021-07-22 21:51:29 -04:00
ReinUsesLisp
f6c09c27b1
spirv: Only add image operands mask when needed
2021-07-22 21:51:29 -04:00
ReinUsesLisp
59668831b7
spirv: Workaround image unsigned offset bug
...
Workaround bug on Nvidia's OpenGL SPIR-V compiler when using unsigned
texture offsets.
2021-07-22 21:51:29 -04:00
ReinUsesLisp
4a76786740
spirv: Add int8 and int16 capabilities only when supported
2021-07-22 21:51:29 -04:00
ReinUsesLisp
8accb076ee
spirv: Add integer clamping workarounds
...
Workaround more bugs on Nvidia's OpenGL SPIR-V compiler.
2021-07-22 21:51:29 -04:00
ReinUsesLisp
55ff0ab463
spirv: Implement int8 and int16 conversion fallbacks
2021-07-22 21:51:29 -04:00
ReinUsesLisp
884a937022
spirv: Support OpenGL uniform buffers and change bindings
2021-07-22 21:51:29 -04:00
ReinUsesLisp
2bdce72c92
spirv: Desambiguate descriptor names
...
Worksaround a bug on Nvidia's OpenGL SPIR-V compiler where names are
used for name matching.
2021-07-22 21:51:29 -04:00
ReinUsesLisp
bfb08e709c
shader: Add OpenGL shader profile options
2021-07-22 21:51:29 -04:00
ReinUsesLisp
4c5f8d123d
shader: Remove shader util
2021-07-22 21:51:29 -04:00
FernandoS27
6aff9b4476
shader: Address feedback
2021-07-22 21:51:29 -04:00
FernandoS27
a2fac91c47
shader: Implement VertexA stage
2021-07-22 21:51:29 -04:00
FernandoS27
cb0587f841
shader: Implement delegation of Exit to dispatcher on CFG
2021-07-22 21:51:29 -04:00
ReinUsesLisp
806c5a3739
vk_graphics_pipeline: Fix texture buffer descriptors
2021-07-22 21:51:29 -04:00
ameerj
031e91e7e5
shader: Fix IADD3.CC
2021-07-22 21:51:29 -04:00
ReinUsesLisp
b62b8f2e84
vk_scheduler: Allow command submission on worker thread
...
This changes how Scheduler::Flush works. It queues the current command
buffer to be sent to the GPU but does not do it immediately. The Vulkan
worker thread takes care of that. Users will have to use
Scheduler::Flush + Scheduler::WaitWorker to get the previous behavior.
Scheduler::Finish is unchanged.
To avoid waiting on work never queued, Scheduler::Wait sends the current
command buffer if that's what the caller wants to wait.
2021-07-22 21:51:29 -04:00
ReinUsesLisp
eb7ef12b95
vk_compute_pass: Fix -Wshadow warning
2021-07-22 21:51:29 -04:00
ReinUsesLisp
ed6c131c92
shader: Move pipeline cache logic to separate files
...
Move code to separate files to be able to reuse it from OpenGL. This
greatly simplifies the pipeline cache logic on Vulkan.
Transform feedback state is not yet abstracted and it's still
intrusively stored inside vk_pipeline_cache. It will be moved when
needed on OpenGL.
2021-07-22 21:51:29 -04:00
ReinUsesLisp
fd502a4d43
vulkan: Defer descriptor set work to the Vulkan thread
...
Move descriptor lookup and update code to a separate thread. Delaying
this removes work from the main GPU thread and allows creating
descriptor layouts on another thread. This reduces a bit the workload
of the main thread when new pipelines are encountered.
2021-07-22 21:51:29 -04:00
ReinUsesLisp
896a4fe9b5
vulkan: Rework descriptor allocation algorithm
...
Create multiple descriptor pools on demand. There are some degrees of
freedom what is considered a compatible pool to avoid wasting large
pools on small descriptors.
2021-07-22 21:51:29 -04:00
ReinUsesLisp
a3b025c6a4
vk_graphics_pipeline: Generate specialized pipeline config functions and improve code
2021-07-22 21:51:29 -04:00
ReinUsesLisp
565d922014
shader: Accelerate pipeline transitions and use dirty flags for shaders
2021-07-22 21:51:29 -04:00
ameerj
90ff800962
shader: Fix BFE s32 undefined check
...
Our unit tests were hitting this exception.
2021-07-22 21:51:29 -04:00
ReinUsesLisp
ecd481a0ca
vk_compute_pipeline: Fix index comparison oversight on compute texture buffers
2021-07-22 21:51:29 -04:00
ReinUsesLisp
1f54f1ff26
shader: Fix error checking in bitfieldExtract and implement bitfieldInsert folding
2021-07-22 21:51:29 -04:00
ReinUsesLisp
d835906b9f
vulkan_device: Require shaderClipDistance and shaderCullDistance features
2021-07-22 21:51:29 -04:00
ReinUsesLisp
1f47476089
vk_graphics_pipeline: Guard against non-tessellation pipelines using patches
2021-07-22 21:51:29 -04:00
ReinUsesLisp
e37ec2790d
shader: Fix storage type when reading patches on tess control
2021-07-22 21:51:29 -04:00
ReinUsesLisp
c8b0377a67
shader: Fix VMNMX selector B
2021-07-22 21:51:29 -04:00
Rodrigo Locatti
72b10edd15
shader: Fix bugs and build issues on GCC
2021-07-22 21:51:29 -04:00
ReinUsesLisp
fa439cb6df
shader: Fix render targets with null attachments
2021-07-22 21:51:29 -04:00
ReinUsesLisp
763adf56a6
shader: Increase the maximum number of storage buffers
...
Compute shaders spill uniform buffers on storage buffers, increasing the
expected number.
2021-07-22 21:51:29 -04:00
ReinUsesLisp
1d861a6e90
shader: Remove identity removal pass for better build times
2021-07-22 21:51:29 -04:00
ReinUsesLisp
4eec191801
shader: Add more strict validation the pass
2021-07-22 21:51:29 -04:00
ReinUsesLisp
21d50bd9bd
shader: Fix forward referencing identity instructions when inserting phi
2021-07-22 21:51:29 -04:00
ReinUsesLisp
3c80ebf1e2
shader: Remove invalidated blocks in dead code elimination pass
2021-07-22 21:51:29 -04:00
ReinUsesLisp
12d7acf707
shader: Add missing UndoUse case for GetSparseFromOp
2021-07-22 21:51:29 -04:00
ReinUsesLisp
9b691a28d8
shader: Require dual source blending
2021-07-22 21:51:29 -04:00
ReinUsesLisp
04e042d3b3
shader: Simplify code in opcodes.h to fix Intellisense
...
Avoid using std::array to fix Intellisense not properly compiling this
code and disabling itself on all files that include it.
While we are at it, change the code to use u8 instead of size_t for the
number of instructions in an opcode.
2021-07-22 21:51:29 -04:00
ReinUsesLisp
052317e748
shader: Implement indexed textures
2021-07-22 21:51:28 -04:00
ameerj
3089fb1e2a
shader: Refactor atomic_operations_global_memory
2021-07-22 21:51:28 -04:00
ameerj
8202ace3e9
shader: add missing include guard in half_floating_point_helper.h
2021-07-22 21:51:28 -04:00
ReinUsesLisp
172942911a
shader: Fix gcc warnings
2021-07-22 21:51:28 -04:00
ReinUsesLisp
16a869571e
shader: Inline common Value getters
2021-07-22 21:51:28 -04:00
ReinUsesLisp
9f5c43dd53
shader: Intrusively store in a block if it's sealed or not
2021-07-22 21:51:28 -04:00
ReinUsesLisp
fecb87ebc8
cmake: Link to common in shader_recompiler
2021-07-22 21:51:28 -04:00
ReinUsesLisp
3c1229a7c5
shader: Improve goto removal algorithm complexity
...
Find sibling node containing a nephew searching from the nephew itself
instead of the uncle.
2021-07-22 21:51:28 -04:00
ReinUsesLisp
1a44a5cafa
shader: Use memset to reset instruction arguments
2021-07-22 21:51:28 -04:00
ReinUsesLisp
9edc2bd70f
shader: Inline common Value functions into the header
2021-07-22 21:51:28 -04:00
ReinUsesLisp
6236b611cf
shader: Move microinstruction header to the value header
2021-07-22 21:51:28 -04:00
ReinUsesLisp
7769517fc0
shader: Move siblings check to a separate function and comment them out
2021-07-22 21:51:28 -04:00
ReinUsesLisp
7bf134b294
shader: Intrusively store register values in block for SSA pass
2021-07-22 21:51:28 -04:00
ReinUsesLisp
3a39124359
shader: Inline common Opcode and Inst functions
2021-07-22 21:51:28 -04:00
ReinUsesLisp
b6bd6a5bce
shader: Inline common IR::Block methods
2021-07-22 21:51:28 -04:00
ReinUsesLisp
8d1327bf78
shader: Use a small_vector for phi blocks
2021-07-22 21:51:28 -04:00
ReinUsesLisp
c44139cda0
shader: Calculate number of arguments in an opcode at compile time
2021-07-22 21:51:28 -04:00
ReinUsesLisp
7066f9ef7b
shader: Implement D3D samplers
2021-07-22 21:51:28 -04:00
ReinUsesLisp
5c187201ec
shader: Add constant propagation for arithmetic right shifts
2021-07-22 21:51:28 -04:00
ReinUsesLisp
56aae7efcf
shader: Simplify code for local memory
2021-07-22 21:51:28 -04:00
ReinUsesLisp
e54171c1a9
shader: Add NVN storage buffer fallbacks
...
When we can't track the SSBO origin of a global memory instruction,
leave it as a global memory operation and assume these pointers are in
the NVN storage buffer slots, then apply a linear search in the shader's
runtime.
2021-07-22 21:51:28 -04:00
ReinUsesLisp
eb7a932952
spirv: Fix ViewportMask
2021-07-22 21:51:28 -04:00
ameerj
688c89590c
spirv: Replace Constant/ConstantComposite with Const helper
2021-07-22 21:51:28 -04:00
FernandoS27
4a97dd4483
shader: Address feedback
2021-07-22 21:51:28 -04:00
FernandoS27
b85c9d8e84
shader: Implement F2F (Imm)
2021-07-22 21:51:28 -04:00
FernandoS27
fbb642f433
shader: Implement IADD3.CC/.X
2021-07-22 21:51:28 -04:00
FernandoS27
f1a3f449d6
shader: Address feedback
2021-07-22 21:51:28 -04:00
FernandoS27
2f01c7fb62
shader: Add coarse derivatives
2021-07-22 21:51:28 -04:00
FernandoS27
b1e325f317
shader: Implement fine derivates constant propagation
2021-07-22 21:51:28 -04:00
FernandoS27
6c60109967
shader: Implement SR_Y_DIRECTION
2021-07-22 21:51:28 -04:00
ReinUsesLisp
99e6cd3916
shader: Fix Phi node types
2021-07-22 21:51:28 -04:00
ReinUsesLisp
6d540c6f2e
shader: Fix memory barriers
2021-07-22 21:51:28 -04:00
ReinUsesLisp
0623915e2e
spirv: Fix implicit lod type
2021-07-22 21:51:28 -04:00
ReinUsesLisp
b597da7f2a
spirv: Use explicit lods outside of fragment shaders
2021-07-22 21:51:28 -04:00
ReinUsesLisp
f771d1fc52
spirv: Use ConstOffset instead of Offset when possible
2021-07-22 21:51:28 -04:00
ameerj
bfdb38404c
shader: Implement BFE and BFI CC
...
Fix two bugs in BFI.
2021-07-22 21:51:28 -04:00
ReinUsesLisp
ad1507b4a5
shader: Implement SampleMask
2021-07-22 21:51:28 -04:00
ReinUsesLisp
cc96469019
shader: Implement PIXLD.MY_INDEX
2021-07-22 21:51:28 -04:00
ReinUsesLisp
ca85ce444f
spirv: Bitcast non-F32 output attributes to their type before store
2021-07-22 21:51:28 -04:00
ReinUsesLisp
b6b541e36a
spirv: Implement ViewportMask with NV_viewport_array2
2021-07-22 21:51:28 -04:00
ReinUsesLisp
f65aa540d8
spirv: Bitcast non-F32 attributes to F32
2021-07-22 21:51:27 -04:00
ReinUsesLisp
10c96c7484
shader: Implement PrimitiveId
2021-07-22 21:51:27 -04:00
ReinUsesLisp
38908d0f7e
shader: Implement tessellation shaders, polygon mode and invocation id
2021-07-22 21:51:27 -04:00
ReinUsesLisp
0f99fdc0eb
shader: Mark atomic instructions as writes
2021-07-22 21:51:27 -04:00
lat9nq
212f5c8050
vk_pipeline_cache: Silence GCC warnings
...
Silences `-Werror=missing-field-initializers` due to missing
initializers.
2021-07-22 21:51:27 -04:00
ReinUsesLisp
03c16b085a
spirv: Implement image buffers
2021-07-22 21:51:27 -04:00
ReinUsesLisp
bba876f192
spirv: Implement Layer stores
2021-07-22 21:51:27 -04:00
FernandoS27
f930bda4fb
spirv: Fix alpha test
2021-07-22 21:51:27 -04:00
ameerj
9502835689
spirv: Fix non-atomic 64-bit store
2021-07-22 21:51:27 -04:00
ameerj
542dc35aac
spirv: Implement alpha test
2021-07-22 21:51:27 -04:00
ReinUsesLisp
e59971ea1b
shader: Implement transform feedbacks and define file format
2021-07-22 21:51:27 -04:00
ReinUsesLisp
4a6c299e3f
shader: Implement early Z tests
2021-07-22 21:51:27 -04:00
ReinUsesLisp
9f5ab82de2
shader: Document and relax cache control on surface instructions
2021-07-22 21:51:27 -04:00
ReinUsesLisp
c84c2ab88c
spirv: Rework storage buffers and shader memory
2021-07-22 21:51:27 -04:00
ReinUsesLisp
a4f27e897c
shader: Fix fixed pipeline point size on geometry shaders
2021-07-22 21:51:27 -04:00
ReinUsesLisp
deba5c7666
shader: Add constant propagation for *&^| binary operations
2021-07-22 21:51:27 -04:00
ReinUsesLisp
4b32692423
shader: Implement geometry shaders
2021-07-22 21:51:27 -04:00
ReinUsesLisp
40948b18ac
shader: Implement OUT
2021-07-22 21:51:27 -04:00
lat9nq
f70707d435
internal_stage_buffer_entry_read: Remove pragma optimize off
2021-07-22 21:51:27 -04:00
ReinUsesLisp
8ebc7b90a0
shader: Stub SR_INVOCATION_INFO
2021-07-22 21:51:27 -04:00
ReinUsesLisp
c6b81943a9
shader: Stub ISBERD
2021-07-22 21:51:27 -04:00
ReinUsesLisp
211fc6331d
shader: Fix CC in I2I
2021-07-22 21:51:27 -04:00
ReinUsesLisp
1cae8e9a10
spirv: Define StorageImageWriteWithoutFormat capability when used
2021-07-22 21:51:27 -04:00
ReinUsesLisp
7c867c2d7c
pipeline_helper: Simplify descriptor objects initialization
2021-07-22 21:51:27 -04:00
ReinUsesLisp
c7efa5ead4
shader: Simplify FLO and throw on CC
2021-07-22 21:51:27 -04:00
ReinUsesLisp
31835567f2
shader: Mark blocks with no end branch as unreachable
2021-07-22 21:51:27 -04:00
ReinUsesLisp
4678dc7246
shader: Implement LOP CC
2021-07-22 21:51:27 -04:00
ReinUsesLisp
879fb08101
shader: Implement SR_THREAD_KILL
2021-07-22 21:51:27 -04:00
ReinUsesLisp
bf784e1497
shader: Apply sign bit in FCMP (imm)
2021-07-22 21:51:27 -04:00
ameerj
62c3bef607
shader: Implement ATOM/S and RED
2021-07-22 21:51:27 -04:00
ReinUsesLisp
619f68db8e
nsight_aftermath_tracker: Report used shaders to Nsight Aftermath
2021-07-22 21:51:27 -04:00
ReinUsesLisp
ece2e64825
spirv: Move phi node patching to a separate function
2021-07-22 21:51:27 -04:00
ReinUsesLisp
480ce24b7e
spirv: Guard against typeless image reads on unsupported devices
2021-07-22 21:51:27 -04:00
ReinUsesLisp
8ec58e16b2
shader: Move LaneId to the warp emission file and fix AMD
2021-07-22 21:51:27 -04:00
ReinUsesLisp
7f8b92cc2d
vk_rasterizer: Request outside render pass execution context for compute
2021-07-22 21:51:27 -04:00
ReinUsesLisp
9a49eed4d6
pipeline_helper: Add missing [[maybe_unused]]
2021-07-22 21:51:27 -04:00
ReinUsesLisp
1e5255de49
spirv: Fix forward declarations on phi nodes
2021-07-22 21:51:27 -04:00
ReinUsesLisp
a26f760eba
shader: Mark ImageWrite with side effects
2021-07-22 21:51:27 -04:00
FernandoS27
ee8beff168
shader: Implement CC for ISET, FSET, PSET, CSET, and DSET
...
Throw when other instructions are missing CC.
2021-07-22 21:51:27 -04:00
ReinUsesLisp
99cfd73ba7
shader: Remove outdated comment in F2I
2021-07-22 21:51:27 -04:00
ReinUsesLisp
5ab1ac4f29
shader: Implement SULD and SUST
2021-07-22 21:51:26 -04:00
ReinUsesLisp
577efc5f9f
shader: Fix Windows build issues
2021-07-22 21:51:26 -04:00
lat9nq
5b95114cd4
shader: Address feedback + clang format
2021-07-22 21:51:26 -04:00
lat9nq
a4e7a41e7f
shader_recompiler,video_core: Cleanup some GCC and Clang errors
...
Mostly fixing unused *, implicit conversion, braced scalar init,
fpermissive, and some others.
Some Clang errors likely remain in video_core, and std::ranges is still
a pertinent issue in shader_recompiler
shader_recompiler: cmake: Force bracket depth to 1024 on Clang
Increases the maximum fold expression depth
thread_worker: Include condition_variable
Don't use list initializers in control flow
Co-authored-by: ReinUsesLisp <reinuseslisp@airmail.cc>
2021-07-22 21:51:26 -04:00
ReinUsesLisp
157952f809
shader: Fix FCMP immediate variant
2021-07-22 21:51:26 -04:00
ReinUsesLisp
7f75818298
shader: Fix dangling labels
2021-07-22 21:51:26 -04:00
ReinUsesLisp
3e6cb6362d
shader: Interact texture buffers with buffer cache
2021-07-22 21:51:26 -04:00
ReinUsesLisp
d349f8ff61
shader: Fix F2I
2021-07-22 21:51:26 -04:00
ReinUsesLisp
d07e15fcf6
shader: Fix TextureGrad
2021-07-22 21:51:26 -04:00
ReinUsesLisp
96da029a74
shader: Implement texture buffers
2021-07-22 21:51:26 -04:00
FernandoS27
0ef887fa6f
shader: Address feedback
2021-07-22 21:51:26 -04:00
FernandoS27
e9cffe874f
shader: Implement indexed Position and ClipDistances
2021-07-22 21:51:26 -04:00
FernandoS27
1fe6a22cff
shader: Implement indexed attributes
2021-07-22 21:51:26 -04:00
FernandoS27
a7f5231caf
shader: Implement AL2P
2021-07-22 21:51:26 -04:00
FernandoS27
c63d79cf65
shader: Fix BRX tracking
2021-07-22 21:51:26 -04:00
ReinUsesLisp
459057f8d4
vk_pipeline_cache: Fix num of pipeline workers on weird platforms
2021-07-22 21:51:26 -04:00
ReinUsesLisp
a9ba4fea0c
shader: Move recursive SSA rewrite to the heap
2021-07-22 21:51:26 -04:00
FernandoS27
3fc7d20fce
shader: Fix ShadowCube declaration type, set number of pipeline threads based on hardware
2021-07-22 21:51:26 -04:00
ReinUsesLisp
64372edffb
shader: Fix splits on blocks using indirect branches
2021-07-22 21:51:26 -04:00
ReinUsesLisp
e2d1e21532
shader: Eliminate orphan blocks more efficiently
2021-07-22 21:51:26 -04:00
ReinUsesLisp
ba2130d5a5
shader: Add subgroup masks
2021-07-22 21:51:26 -04:00
ReinUsesLisp
b580c1e208
shader: Implement BAR and fix memory barriers
2021-07-22 21:51:26 -04:00
ReinUsesLisp
e9d7f63788
shader: Abstract breadth searches and use the abstraction
2021-07-22 21:51:26 -04:00
ReinUsesLisp
9db035faec
shader: Reimplement GetCbufU64 as GetCbufU32x2
...
It may generate better code on some compilers and it's easier to handle.
2021-07-22 21:51:26 -04:00
ReinUsesLisp
4c15b3b91a
vk_compute_pass: Fix compute passes
2021-07-22 21:51:26 -04:00
ReinUsesLisp
ee52ec7e04
shader: Remove atomic flags and use mutex + cond variable for pipelines
2021-07-22 21:51:26 -04:00
ReinUsesLisp
a2536f0b42
shader: Remove unused header in VOTE
2021-07-22 21:51:26 -04:00
ReinUsesLisp
9008061b99
vk_pipeline_cache: Remove unnecesary scope in pipeline cache locking
2021-07-22 21:51:26 -04:00
ReinUsesLisp
24084a77ca
shader: Rework global memory tracking to use breadth-first search
2021-07-22 21:51:26 -04:00
ReinUsesLisp
b1335585bf
shader: Fix fp16 merge when using native fp16
2021-07-22 21:51:26 -04:00
ReinUsesLisp
d1b84c7828
shader: Fix FADD32I
2021-07-22 21:51:26 -04:00
FernandoS27
fe14898573
shader: Fix undetected bug from review
2021-07-22 21:51:26 -04:00
FernandoS27
ffb90d59c6
shader: Address feedback
2021-07-22 21:51:26 -04:00
FernandoS27
df48b3b32a
shader: "Implement" NOP
2021-07-22 21:51:26 -04:00
FernandoS27
98c08894d9
vk_pipeline_cache: Small fixes to the pipeline cache
2021-07-22 21:51:26 -04:00
FernandoS27
741b21715a
shader: Address Feedback
2021-07-22 21:51:26 -04:00
FernandoS27
5a6eb31578
shader: Implement SR_LaneId
2021-07-22 21:51:26 -04:00
FernandoS27
e98900a16b
shader: Fix shared memory on cool drivers
2021-07-22 21:51:26 -04:00
FernandoS27
a9f79b6553
shader: Implement MEMBAR
2021-07-22 21:51:26 -04:00
FernandoS27
5c94fba511
shader: Improve VOTE.VTG stub
2021-07-22 21:51:25 -04:00
FernandoS27
06469da581
shader: Mark SSBOs as written when they are
2021-07-22 21:51:25 -04:00
FernandoS27
68bad0e922
shader: Implement ViewportIndex
2021-07-22 21:51:25 -04:00
FernandoS27
c7ed439bbc
shader: Stub TLD4's PTP when it isn't constant
2021-07-22 21:51:25 -04:00
FernandoS27
1534a99e35
shader: Stub VOTE.VTG
2021-07-22 21:51:25 -04:00
FernandoS27
82698ecb41
shader: Fold composite extract
2021-07-22 21:51:25 -04:00
FernandoS27
5b74fe36ec
shader: Fold comparisons and Pack/Unpack16
2021-07-22 21:51:25 -04:00
ReinUsesLisp
b64bf653a4
shader: Fix branches to visited virtual blocks
2021-07-22 21:51:25 -04:00
ReinUsesLisp
2b6f357e36
vulkan: Serialize pipelines on a separate thread
2021-07-22 21:51:25 -04:00
ReinUsesLisp
8678cb10d4
vulkan: Create pipeline layouts in separate threads
2021-07-22 21:51:25 -04:00
ReinUsesLisp
9e46643465
vulkan: Build pipelines in parallel at runtime
...
Wait from the worker thread for a pipeline to build before binding it to
the command buffer. This allows queueing pipelines to multiple threads.
2021-07-22 21:51:25 -04:00
ReinUsesLisp
2116d7e0b3
shader: Fix dependency on identity removal pass
2021-07-22 21:51:25 -04:00