bunnei
322349e8cc
Merge pull request #4975 from comex/invalid-syncpoint-id
...
nvdrv, video_core: Don't index out of bounds when given invalid syncpoint ID
2020-11-26 01:27:24 -08:00
Rodrigo Locatti
0e15c68f54
Merge pull request #4976 from comex/poll-events
...
Overhaul EmuWindow::PollEvents to fix yuzu-cmd calling SDL_PollEvents off main thread
2020-11-25 20:44:53 -03:00
ameerj
d52ee6d0a7
cleanup unneeded comments and newlines
2020-11-25 14:46:08 -05:00
ameerj
e87670ee48
Refactor MaxwellToSpirvComparison. Use Common::BitCast
...
Co-Authored-By: Rodrigo Locatti <reinuseslisp@airmail.cc>
2020-11-25 00:33:20 -05:00
ameerj
1dbf71ceb3
Address PR feedback from Rein
2020-11-24 22:46:45 -05:00
ameerj
9014861858
vulkan_renderer: Alpha Test Culling Implementation
...
Used by various textures in many titles, e.g. SSBU menu.
2020-11-24 22:46:45 -05:00
comex
e8b2fd21d8
nvdrv, video_core: Don't index out of bounds when given invalid syncpoint ID
...
- Use .at() instead of raw indexing when dealing with untrusted indices.
- For the special case of WaitFence with syncpoint id UINT32_MAX,
instead of crashing, log an error and ignore. This is what I get when
running Super Mario Maker 2.
2020-11-24 12:59:41 -05:00
Rodrigo Locatti
fbda5e9ec9
Merge pull request #3681 from lioncash/component
...
decoder/image: Fix incorrect G24R8 component sizes in GetComponentSize()
2020-11-24 04:38:03 -03:00
comex
994f497781
Overhaul EmuWindow::PollEvents to fix yuzu-cmd calling SDL_PollEvents off main thread
...
EmuWindow::PollEvents was called from the GPU thread (or the CPU thread
in sync-GPU mode) when swapping buffers. It had three implementations:
- In GRenderWindow, it didn't actually poll events, just set a flag and
emit a signal to indicate that a frame was displayed.
- In EmuWindow_SDL2_Hide, it did nothing.
- In EmuWindow_SDL2, it did call SDL_PollEvents, but this is wrong
because SDL_PollEvents is supposed to be called on the thread that set
up video - in this case, the main thread, which was sleeping in a
busyloop (regardless of whether sync-GPU was enabled). On macOS this
causes a crash.
To fix this:
- Rename EmuWindow::PollEvents to OnFrameDisplayed, and give it a
default implementation that does nothing.
- In EmuWindow_SDL2, do not override OnFrameDisplayed, but instead have
the main thread call SDL_WaitEvent in a loop.
2020-11-23 17:58:49 -05:00
Morph
e13a91fa9b
Merge pull request #4954 from lioncash/compare
...
gl_rasterizer: Make floating-point literal a float
2020-11-22 09:55:23 +08:00
bunnei
5502f39125
Merge pull request #4955 from lioncash/move3
...
async_shaders: std::move data within QueueVulkanShader()
2020-11-21 01:21:08 -08:00
LC
d88baa746b
Merge pull request #4957 from ReinUsesLisp/alpha-test-rt
...
gl_rasterizer: Remove warning of untested alpha test
2020-11-20 21:19:06 -05:00
ReinUsesLisp
acc14d233f
gl_rasterizer: Remove warning of untested alpha test
...
Alpha test has been proven to only affect the first render target.
2020-11-20 23:17:40 -03:00
bunnei
b00f4abe36
Merge pull request #4953 from lioncash/shader-shadow
...
shader_bytecode: Eliminate variable shadowing
2020-11-20 16:58:14 -08:00
Lioncash
01db5cf203
async_shaders: emplace threads into the worker thread vector
...
Same behavior, but constructs the threads in place instead of moving
them.
2020-11-20 04:46:56 -05:00
Lioncash
ba3916fc67
async_shaders: Simplify implementation of GetCompletedWork()
...
This is equivalent to moving all the contents and then clearing the
vector. This avoids a redundant allocation.
2020-11-20 04:44:44 -05:00
Lioncash
3fcc98e11a
async_shaders: Simplify moving data into the pending queue
2020-11-20 04:41:29 -05:00
Lioncash
5b441fa25d
async_shaders: std::move data within QueueVulkanShader()
...
Same behavior, but avoids redundant copies.
While we're at it, we can simplify the pushing of the parameters into
the pending queue.
2020-11-20 04:38:18 -05:00
Lioncash
8469b76630
gl_rasterizer: Make floating-point literal a float
...
Gets rid of an unnecessary expansion from float to double.
2020-11-20 04:24:33 -05:00
Lioncash
b7cd5d742e
shader_bytecode: Make use of [[nodiscard]] where applicable
...
Ensures that all queried values are made use of.
2020-11-20 02:20:37 -05:00
Lioncash
56ecafc204
shader_bytecode: Eliminate variable shadowing
2020-11-20 02:13:45 -05:00
Rodrigo Locatti
1889b641d9
Merge pull request #4308 from ReinUsesLisp/maxwell-3d-funcs
...
maxwell_3d: Move code to separate functions and insert instead of push_back
2020-11-20 01:57:22 -03:00
Lioncash
70812ec57b
rasterizer_interface: Make use of [[nodiscard]] where applicable
2020-11-17 07:19:13 -05:00
Lioncash
a78021580d
render_base: Make use of [[nodiscard]] where applicable
2020-11-17 07:19:12 -05:00
Lioncash
b928fca114
gpu: Make use of [[nodiscard]] where applicable
2020-11-17 07:19:09 -05:00
ReinUsesLisp
622830f4e1
maxwell_3d: Use insert instead of loop push_back
...
This reduces the overhead of bounds checking on each element.
It won't reduce the cost of allocation because usually this vector's
capacity is usually large enough to hold whatever we push to it.
2020-11-11 19:52:19 -03:00
ReinUsesLisp
9ea8cffe35
maxwell_3d: Move code to separate functions
...
Deduplicate some code and put it in separate functions so it's easier to
understand and profile.
2020-11-11 19:52:19 -03:00
bunnei
dc5396a466
video_core: dma_pusher: Remove integrity check on command lists.
...
- This seems to cause softlocks in Breath of the Wild.
2020-11-07 00:08:19 -08:00
bunnei
91a45834fd
Merge pull request #4891 from lioncash/clang2
...
General: Fix clang build
2020-11-06 10:33:13 -08:00
bunnei
a111a9ae2c
Merge pull request #4854 from ReinUsesLisp/cube-array-shadow
...
shader: Partially implement texture cube array shadow
2020-11-05 16:25:00 -08:00
Lioncash
6f006d051e
General: Fix clang build
...
Allows building on clang to work again
2020-11-05 10:07:16 -05:00
bunnei
087f52e872
Merge pull request #4858 from lioncash/initializer
...
General: Resolve a few missing initializer warnings
2020-11-04 12:10:10 -08:00
Chloe
6bbbbe8f85
Merge pull request #4869 from bunnei/improve-gpu-sync
...
Improvements to GPU synchronization & various refactoring
2020-11-04 18:36:55 +11:00
bunnei
4bfa411ddc
Merge pull request #4874 from lioncash/nodiscard2
...
nvdec: Make use of [[nodiscard]] where applicable
2020-11-03 16:34:07 -08:00
Lioncash
4f0f481f63
nvdec: Make use of [[nodiscard]] where applicable
...
Prevents bugs from occurring where the results of a function are
accidentally discarded
2020-11-02 02:45:15 -05:00
bunnei
1089d76736
Merge pull request #4865 from ameerj/async-threadcount
...
async_shaders: Increase Async worker thread count for >8 thread cpus
2020-11-01 01:54:01 -07:00
bunnei
c6e1c46ac7
video_core: dma_pusher: Add support for integrity checks.
...
- Log corrupted command lists, rather than crash.
2020-11-01 01:52:38 -07:00
bunnei
c64545d07a
video_core: dma_pusher: Add support for prefetched command lists.
2020-11-01 01:52:38 -07:00
bunnei
6053b95552
video_core: gpu: Implement WaitFence and IncrementSyncPoint.
2020-11-01 01:52:37 -07:00
bunnei
98f68d06f1
Merge pull request #4853 from ReinUsesLisp/fcmp-imm
...
shader/arithmetic: Implement FCMP immediate + register variant
2020-10-31 01:25:02 -07:00
Lioncash
12eeffcb7c
vp9: Be explicit with copy and move operators
...
It's deprecated in the language to autogenerate these if the destructor
for a type is specified, so we can explicitly specify how we want these
to be generated.
2020-10-29 22:57:35 -04:00
Lioncash
0d713cf8eb
vp9: Mark functions with [[nodiscard]] where applicable
...
Prevents values from mistakenly being discarded in cases where it's a
bug to do so.
2020-10-29 22:57:32 -04:00
Lioncash
badea3b301
vp9: Provide a default initializer for "hidden" member
...
The API of VP9 exposes a WasFrameHidden() function which accesses this
member. Given the constructor previously didn't initialize this member,
it's a potential vector for an uninitialized read.
Instead, we can initialize this to a deterministic value to prevent that
from occurring.
2020-10-29 22:35:55 -04:00
Lioncash
f8543249f0
vp9: Make some member functions internally linked
...
These helper functions don't directly modify any member state and can be
hidden from view.
2020-10-29 22:34:46 -04:00
Lioncash
5553bd3ba2
General: Resolve a few missing initializer warnings
...
Resolves a few -Wmissing-initializer warnings.
2020-10-29 19:37:07 -04:00
bunnei
ef29bf4515
Merge pull request #4837 from lioncash/nvdec-2
...
nvdec: Minor tidying up
2020-10-29 12:28:07 -07:00
ameerj
3620206136
async_shaders: Increase Async worker thread count for 8+ thread cpus
...
Adds 1 async worker thread for every 2 available threads above 8
2020-10-29 14:16:45 -04:00
bunnei
c6d001c94f
Merge pull request #4838 from lioncash/syncmgr
...
sync_manager: Amend parameter order of calls to SyncptIncr constructor
2020-10-28 22:49:22 -07:00
bunnei
94eca09cf6
video_core: cdma_pusher: Add missing LOG_DEBUG field in ExecuteCommand.
2020-10-28 16:47:08 -07:00
ReinUsesLisp
657771bdcb
shader: Partially implement texture cube array shadow
...
This implements texture cube arrays with shadow comparisons but doesn't
fix the asserts related to it.
Fixes out of bounds reads on swizzle constructors and makes them use
bounds checked ::at instead of the unsafe operator[].
2020-10-28 17:12:40 -03:00