Nekotekina
12c83b340d
Remove built_function
...
With today's branch prediction techniques, it's hardly useful.
2022-01-24 22:21:41 +03:00
kd-11
1fa82eec89
vk: Rework format feature validation
...
- Requirements have changed a lot over the years. We no longer blit Z formats around for example because they never support linear filtering
- Removing some unused requirements allows more hardware to be usable
2022-01-24 19:14:27 +03:00
kd-11
2f7d38bb81
rsx: Improve coverage checking logic to handle 3D and cubemap resources
2022-01-23 00:03:03 +03:00
kd-11
4f8b5849b7
rsx: Take depth into account when calculating coverage
2022-01-23 00:03:03 +03:00
kd-11
7f216f2581
rsx: Fix local slice height calculation
2022-01-23 00:03:03 +03:00
kd-11
6ffd38c393
vk: Only enable DCC workaround if the format features allow it
2022-01-22 13:16:48 +03:00
nastys
801e7f3c2f
macOS: Implement texture swizzling for 16-bit formats
2022-01-22 00:17:17 +01:00
nastys
c7140df5f8
Initial support for Apple GPUs
2022-01-22 00:17:17 +01:00
nastys
6b5f0957ce
Disable macOS swizzling workaround
2022-01-22 00:17:17 +01:00
kd-11
3942a464fe
vk: Avoid leaking descriptor copies
2022-01-20 19:21:24 +03:00
kd-11
2331dc3256
vk: Keep the total number of allocated samplers under control
2022-01-20 19:21:24 +03:00
Nekotekina
4704367382
Remove unnecessary asmjit::imm_ptr
2022-01-18 00:10:32 +03:00
Nekotekina
14cca55b50
PPU: refactor vector rounding instructions
...
Fix: nearbyint -> roundeven
2022-01-18 00:10:32 +03:00
kd-11
000ec71629
Fix invalid descriptor setup if subdraw0 has broken vertex setup
2022-01-17 12:38:10 +03:00
kd-11
3e794e7fdb
rsx: Optimize 8-bit rounding logic a bit
...
- NV hw does not like the raw use of round()
2022-01-17 10:28:23 +03:00
kd-11
c38ca21a81
rsx: Round up 8-bit ROP output on NVIDIA cards
...
- NV GPUs have a tendancy to be off by a very small margin, breaking rendering when greaterThan/lessThan checks are used.
- NOTE: Currently this setting is using the sRGB flag which indicates 8-bit output.
Only one game is currently known to care about this behaviour so this is good enough for now.
2022-01-17 10:28:23 +03:00
kd-11
f923eaf09a
rsx: Surface format remapping enhancements
2022-01-17 10:28:23 +03:00
Nekotekina
580bd2b25e
Initial Linux Aarch64 support
...
* Update asmjit dependency (aarch64 branch)
* Disable USE_DISCORD_RPC by default
* Dump some JIT objects in rpcs3 cache dir
* Add SIGILL handler for all platforms
* Fix resetting zeroing denormals in thread pool
* Refactor most v128:: utils into global gv_** functions
* Refactor PPU interpreter (incomplete), remove "precise"
* - Instruction specializations with multiple accuracy flags
* - Adjust calling convention for speed
* - Removed precise/fast setting, replaced with static
* - Started refactoring interpreters for building at runtime JIT
* (I got tired of poor compiler optimizations)
* - Expose some accuracy settings (SAT, NJ, VNAN, FPCC)
* - Add exec_bytes PPU thread variable (akin to cycle count)
* PPU LLVM: fix VCTUXS+VCTSXS instruction NaN results
* SPU interpreter: remove "precise" for now (extremely non-portable)
* - As with PPU, settings changed to static/dynamic for interpreters.
* - Precise options will be implemented later
* Fix termination after fatal error dialog
2022-01-15 06:48:04 +03:00
kd-11
d6aa834b5f
vk: Enable shading rate hack for all GPUs
...
- This is a hack, ideally we should be using coverage-based masking when writing the exploded texture.
- We do not have access to the fragment coverage mask and it is non-trivial to integrate it in a competent manner.
2022-01-14 10:21:38 +03:00
kd-11
6d737e61fd
rsx: Use 32 bit integers for pitch
...
- RSX max pitch = 65536 which requires 17 bits
2022-01-10 12:27:30 +03:00
kd-11
83026fd263
rsx: use coverage ratio to determine when too much data is overlapping
2022-01-07 22:55:27 +03:00
kd-11
92824b6729
rsx: Rework invalidation tagging
2022-01-07 22:55:27 +03:00
kd-11
7563655221
rsx: Bump surface removal threshold values
...
- It is much slower to attempt surface removal than to render duplicates on the host GPU
2022-01-07 22:55:27 +03:00
kd-11
6889b48973
rsx: Add optimized version of section removal code
2022-01-07 22:55:27 +03:00
Eladash
bba528e2ae
rsx: Fix wrong fault report in initialization ( #11323 )
...
* rsx: Fix wrong fault report in initialization
* Ensure emu.isstopped() == true at RPCS3 startup
Based on zero initialization.
2022-01-05 20:41:01 +03:00
kd-11
7c47b0029c
gl: Fully drop alignment restriction for compressed textures
...
- This is just not part of spec, there is no enforcement for multiple of block size for width or height of s3tc compressed images.
- This restriction does indeed exist for ASTC and ETC but we're not using those formats.
2022-01-02 14:29:38 +03:00
Nekotekina
cb2748ae08
Update ASMJIT (new upstream API)
2021-12-29 02:45:00 +03:00
Nekotekina
d836033212
LLVM: enable some JIT events (Intel, Perf)
...
Made some related adjustments.
Currently incomplete.
2021-12-26 16:41:37 +03:00
Nekotekina
510041a873
rsx_methods.cpp: optimize compile time (120s to 10s)
...
Untemplate NV308A_COLOR
2021-12-26 14:40:21 +03:00
Nekotekina
8b4b6ba946
copy_data_swap_u32: build AVX-512 path
2021-12-26 14:40:21 +03:00
Nekotekina
599e00d6da
BufferUtils: remove dead code (vertex streaming)
...
RIP. It won't be useful.
2021-12-26 14:40:21 +03:00
Nekotekina
3cd8891ab8
Re-refactor copy_data_swap_u32 again
...
Drop AVX2 path for now, since it usually operates on small data.
Rely on automatic SSE vectorization on recent compilers.
Side refactoring on JIT.h to workaround weird conflict issue.
2021-12-26 14:40:21 +03:00
kd-11
a9303acfdf
rsx: Fix zclip w scaling
2021-12-26 12:50:31 +03:00
nastys
a0040e6fb1
macOS: Implement texture converter for Metal (2) ( #11289 )
...
* macOS: Implement texture converter for Metal (2)
* Fix texture conversion formatting
2021-12-24 15:46:37 +03:00
kd-11
28d7af313b
rsx: Remove noisy debug print
2021-12-24 15:13:33 +03:00
kd-11
39ef39aa4e
rsx: Exercise caution when testing for overlaps in invalidated sections
2021-12-24 15:13:33 +03:00
kd-11
56dd09f4fe
rsx: Handle floating point shenanigans
...
- If near and far clip are too close together, the API will not distinguish between them leading to out of bounds values
2021-12-22 22:08:53 +03:00
kd-11
de495952fd
rsx: Enable fallback for devices without wide integer Z buffers
2021-12-22 22:08:53 +03:00
kd-11
1ce5349199
rsx: Remove zclip hackery
...
- Calculates precise Z value as requested by the game
- Works properly if the underlying Z format matches the PS3 1:1 but may cause minor problems otherwise
2021-12-22 22:08:53 +03:00
Nekotekina
12e3c9e08b
Use PAUSE in vk::query_pool_manager::get_query_result
2021-12-21 23:28:09 +03:00
Nekotekina
262ff01619
Use aligned stores in write_index_array_data_to_buffer
...
Ensure that target buffer is cache line aligned.
Improve stx::make_single to support alignment.
2021-12-21 23:28:09 +03:00
Nekotekina
76ccaf5e6f
BufferUtils: refactoring
...
Optimize CPU capability tests for arch-tuned builds.
Separate streaming and non-streaming utilities.
Rewritten copy_data_swap_u32(_cmp) with AVX2 path.
2021-12-21 23:28:09 +03:00
nastys
47e4a95d8f
Fix remap_vector redefinition on macOS ( #11271 )
2021-12-21 10:36:09 +01:00
nastys
08333e0876
macOS moltenVK support and SIGBUS handling ( #11252 )
2021-12-12 21:35:56 +01:00
kd-11
d523f9cc6b
rsx: Avoid skipping input mask checks due to static flow control
2021-12-08 23:58:32 +03:00
kd-11
7ca15c60bb
rsx: Improve image aspect tests
...
- Replace old format-based detection with proper aspect test.
Explicit image aspect has been available for a long time, but older
code was not updated.
2021-12-08 23:58:32 +03:00
Nekotekina
d6420b8803
Put std::hash specialization out of std
2021-12-07 13:04:10 +03:00
DH
49c02854f5
[rsx] reduce size of config structs
2021-12-02 21:36:57 +03:00
DH
cccfb89aa0
[Config] Use std::less<> for std::map<...>
...
Reduces amount of string copies
[Utilities] fmt::replace_all: avoid creation of temporary strings
2021-12-02 21:36:57 +03:00
kd-11
02832d9623
rsx: Add some sensible fallbacks ( #11219 )
...
* rsx: Add some sensible fallbacks
* Update GLPresent.cpp
* Update VKPresent.cpp
* Update rsx_utils.h
* Update rsx_utils.cpp
2021-12-02 16:02:08 +03:00
kd-11
9bb46aa944
rsx: Simplify unconstrained aspect ratio conversion
...
- There is a reason resolutions are defined by only a height variable.
2021-12-01 21:55:53 +01:00
Megamouse
aea1ec2594
avconf: Add const to fxo references
2021-12-01 21:55:53 +01:00
kd-11
22a7b026e7
rsx: Fix image scaling
...
- Specifically fixes a corner case where double transforms are required.
Technically this can be made more readable using transformation matrices:
* M1 = transform_virtual_to_physical()
* M2 = transform_image_to_virtual()
* M3 = M1 * M2
* Result = Input * M3
But we don't use a CPU-side matrix library and it is not reasonable to do this on the GPU.
2021-12-01 21:55:53 +01:00
Megamouse
c8d4a0dcdc
VK/GL: honor game's aspect ratio when scaling
2021-12-01 21:55:53 +01:00
kd-11
38bfefcdfa
vk: Fix incorrect mixed transfer modes for mipmapped VTC
2021-11-28 01:44:21 +03:00
kd-11
44fe6f6d39
rsx: Fix sloppy format matching test
2021-11-27 17:47:41 +03:00
orbea
a84223bdc6
rpcs3: Fix the DATADIR path for AppImage
...
Even when DATADIR is defined the other paths may still be correct.
Fixes: https://github.com/RPCS3/rpcs3/issues/11195
2021-11-24 19:14:06 +01:00
kd-11
4df1a938b1
Unused var
2021-11-24 16:02:24 +03:00
kd-11
94a3b1cfe8
rsx: Roll back some optimizations
...
- Just use RGB565 for all blit targets. Avoids really dumb transforms done by GPU hw.
- When X16 is used, all the channels get written to R channel alone. CmdBlit does perform format conversion!
- gl: Force image copy when blit is requested with compatible targets. Avoids format conversion issues.
2021-11-24 16:02:24 +03:00
kd-11
a21c6c4628
rsx: Fix handling of scaling requests for packed formats
...
- One does not simply interpolate RGB565 components as U16 data!
2021-11-24 16:02:24 +03:00
kd-11
58f0fa3ca5
gl: Enable handling of X16 blit targets
2021-11-24 16:02:24 +03:00
kd-11
97bd8f7bc1
rsx: Update sampler format class when inheriting mipmap slices/sections
2021-11-24 16:02:24 +03:00
AniLeo
1df8f52a9f
vk: Remove lavapipe workaround
...
Current lavapipe version now has support for
shaderStorageBufferArrayDynamicIndexing
2021-11-23 22:48:46 +01:00
orbea
59f253ba24
cmake: Use GNUInstalldirs
2021-11-22 21:45:55 +01:00
Megamouse
7eee9e7b05
overlays: simplify backup icon copy procedure
2021-11-20 08:43:46 +01:00
Megamouse
0f7534c755
VK: fix NVIDIA driverVersion check
2021-11-16 09:31:16 +01:00
Megamouse
4d0330bf82
rsx: fix possible segfault
2021-11-16 09:31:16 +01:00
Megamouse
f6e04ffdd2
overlays: add stick input to native dialogs
2021-11-16 01:38:33 +01:00
Megamouse
44b42f68fd
overlays: add R3, L3 and PS buttons
...
Unused at the moment
2021-11-16 01:38:33 +01:00
Megamouse
ff5e31f396
overlays: add system sounds
2021-11-15 23:03:30 +01:00
kd-11
59b1c324a9
rsx: Properly implement immediate mode rendering
...
- Treat the draw commands as being consumed on-the-fly with ATTR0 as provoking attribute
- Analysing streams sent to RSX and the results implies they are consumed fully inline.
This only makes sense if a provoking attribute is present. The 'static' register is truly the immediate register for the draw.
2021-11-15 18:14:15 +03:00
kd-11
1f627caa81
rsx: Clear some leaking register state between runs
2021-11-15 18:14:15 +03:00
kd-11
7e3eab9915
rsx: Fix texture state propagation between unrelated draw calls
...
- Older games can load all textures before a draw sequence and then swap shaders for different draws.
- Optimizations in texture state streaming make it so that only referenced data is carried forward.
2021-11-09 12:39:49 +03:00
Megamouse
88bb26afb4
vk: make upscaler dynamic
...
The config option was marked as dynamic, but was never actually changed ingame
2021-11-06 01:02:54 +01:00
kd-11
f7eacf70ec
rsx: Restore shader disassembler to working state
2021-11-05 23:55:07 +03:00
kd-11
933d96af5f
vk: Do not clip region using renderpass renderarea, we have scissor for that
2021-11-04 21:05:15 +03:00
kd-11
ad00c44231
rsx: Configure pitch correctly for pitch-zero textures (1D)
2021-11-03 16:58:30 +03:00
Eladash
b84e95d768
rsx: Fixate time stamp of VBLANK
2021-11-01 10:04:53 +01:00
Eladash
4369fb234e
rsx: Fix typo in VBLANK processing regarding emulation pause
2021-11-01 10:04:53 +01:00
Eladash
58040d478a
rsx: Implement NTSC fixup mode, improve VBLANK accuracy
2021-11-01 10:04:53 +01:00
kd-11
5b0ef401f7
rsx: Fix sampling in X when 0 pitch is given
...
- A pitch of 0 still allows 1-dimensional addressing.
2021-10-31 14:32:42 +03:00
Megamouse
1650dd1c7d
overlays: fix graph offset error after applying new config
...
I already had this figured out last time but forgot the dynamic config use case.
2021-10-31 10:14:08 +01:00
Megamouse
84f123041a
overlays: fix offset of right edge oriented graphs when detail level is none
2021-10-31 10:14:08 +01:00
Megamouse
f258ae795c
Add more logging for Emulator Stop events
...
This should give us more insight into the conditions that cause emulation stops.
This may also help find false issue reports.
2021-10-31 04:12:47 +01:00
Megamouse
33e80a733d
overlays: fix trophy notification sound in queue
2021-10-30 22:44:30 +02:00
Megamouse
0e20acdf55
overlays: add optional sound to trophy popup
2021-10-30 17:16:45 +02:00
Megamouse
f262e77fbd
overlays: add fade to trophy notification pop-ups
2021-10-30 17:16:45 +02:00
Megamouse
244aa6879a
overlays: fix trophy notification pop-up locations
2021-10-30 17:16:45 +02:00
kd-11
78bcb0fd53
rsx: Do not reuse/destroy sections that have references held
...
- Avoids a situation where blit-dst and blit-src have overlapping ranges. Uploading blit-dst destroys blit-src and vice-versa.
This is not the end of the world, but blit-src should be kept around until the operation is completed to avoid stale references!
2021-10-27 12:30:43 +03:00
kd-11
c733e794de
gl: Use real image dimensions when decoding compressed textures
...
- Image size is already correctly calculated using block dimensions
2021-10-27 12:30:43 +03:00
kd-11
99fc90648b
gl: Disable shader interpreter if hardware does not support bindless textures
2021-10-27 12:30:43 +03:00
kd-11
2587545eed
gl: Fix decoding of wide, swizzled textures
...
- Handle pre-byteswapped data (swizzled usually) in the compute-safe path
2021-10-27 12:30:43 +03:00
kd-11
4ed92f4155
vk: Fully allow CB change in emit_geometry
...
- upload_vertex_data can trigger a flush to CELL which will result in CB flush.
Ensure CB state is correctly reloaded in such a situation.
2021-10-20 12:05:39 +03:00
Eladash
ab50e5483e
GUI Utilities: Implement instruction search, PPU/SPU disasm improvements ( #10968 )
...
* GUI Utilities: Implement instruction search in PS3 memory
* String Searcher: Case insensitive search
* PPU DisAsm: Comment constants with ORI
* PPU DisAsm: Add 64-bit constant support
* SPU/PPU DisAsm: Print CELL errors in disasm
* PPU DisAsm: Constant comparison support
2021-10-12 23:12:30 +03:00
kd-11
d58df667b9
rsx: Fix some texture decode instructions
...
- Fix TEX1D_PROJ definition
- Make TEX3D_PROJ cubemap-compatible
2021-10-12 13:47:08 +03:00
kd-11
479150b214
rsx: Fix decoding of linear cubemaps
...
- 128-byte boundary is not observed in linear tiling. Verified in hw.
2021-10-10 16:15:28 +03:00
kd-11
e1d1d16227
gl: Alias register binding points a bit
...
- While aliasing is easy to break, it allows outdated hw to run
2021-10-10 16:15:28 +03:00
kd-11
b3725baf5a
rsx: Rewrite shader decompiler texture dispatch
2021-10-09 15:10:36 +03:00
kd-11
f1d9a014c0
vk: Silence compiler warning
2021-10-09 15:10:36 +03:00
Megamouse
af11546b1e
Overlays: fix small performance overlay font sizes
2021-10-04 19:57:57 +02:00
kd-11
f90bf2dd40
vk: Use a dynamic number of descriptor allocations
2021-09-29 01:20:32 +03:00
kd-11
dc8fc9fc79
vk: Clean up around vkQueueSubmit handling
...
- Explicitly declare one version for CB flush and the other for Async flush
- Always flush descriptors on CB flush in case of page fault handling.
Other threads other than offloader can also enter the method and require normal flow.
- Fix overlapping interrupt IDs.
- Minor formatting fixes
2021-09-28 23:18:26 +03:00
kd-11
3d49976b3c
vk: Add deregister event for sets
...
- Unused in practice, but this is more for peace of mind.
2021-09-28 17:43:15 +03:00
kd-11
eed38e1bbc
vk: Make the new descriptor system spec compliant
2021-09-28 17:43:15 +03:00
kd-11
9595297a3a
Whitespace fix
2021-09-28 17:43:15 +03:00
kd-11
7c5b5d25e3
vk: Implement descriptor allocation batching
2021-09-28 17:43:15 +03:00
kd-11
2e22a0d9bb
rsx: Optimize thread self-tests
2021-09-28 17:43:15 +03:00
kd-11
ba2a8ebf2e
vk: Enable deferred descriptor updates via descriptor-indexing
2021-09-28 17:43:15 +03:00
kd-11
381c7544fa
Optimize basic descriptor batching
2021-09-28 17:43:15 +03:00
kd-11
4752c4014b
vk: Implement basic descriptor updates batching
2021-09-28 17:43:15 +03:00
kd-11
24642a4c18
vk: Refactor descriptors a bit
2021-09-28 17:43:15 +03:00
kd-11
62979c7bd9
vk: Enable descriptor indexing extension if supported
2021-09-28 17:43:15 +03:00
kd-11
7b9fb7ad9c
rsx: refactor rsx_utils a bit
...
- Move obviously standalone things to their own utility files
2021-09-28 17:43:15 +03:00
kd-11
7f830d555d
vk: Simplify texture cache OOM tracking a bit
2021-09-28 17:43:15 +03:00
kd-11
9aafd8c09f
rsx: Avoid get_system_time for simple draw ordering
2021-09-28 17:43:15 +03:00
kd-11
6781eb7c76
rsx: Avoid calling get_system_time() every draw call
2021-09-28 17:43:15 +03:00
kd-11
3e09b97f58
rsx: Minor optimization; avoid preparing unused vertex streams
...
- Also discards unused program state variables
2021-09-28 17:43:15 +03:00
Megamouse
269c4604aa
VFS: move VFS settings to seperate file
2021-09-25 19:21:59 +03:00
kd-11
e4aff539b0
vk: Fix scanning for upload heap types.
...
- HOST_CACHED support must be prioritized, but is not a mandate.
- Scan for that flag explicitly and fall back to uncached if it is not supported.
- Uncached memory is too slow for our requirements to contend with cached memory.
2021-09-23 01:45:37 +03:00
Megamouse
f1037f75d9
perf_overlay: fix initial graph positions with detail level none
2021-09-22 08:06:58 +02:00
Megamouse
81a01134bb
cellOsk: fix dialog abort w/o user interaction
2021-09-21 23:22:26 +02:00
kd-11
3c7ada8e83
rsx: Fix 3D texture decode
...
- 3D mipmaps are shrunk in all 3 axes, they are not 2D array textures.
- Fixes mip1-mipN for all situations
2021-09-21 19:53:46 +03:00
kd-11
46b3027981
rsx: Invariably clear the texture state if referenced.
2021-09-21 19:53:46 +03:00
kd-11
334999f639
vk: Enable sampler mirror-clamped-to-edge as an extension
2021-09-21 19:53:46 +03:00
kd-11
dabfce5c82
rsx: Rework how depth/stencil initialization+clear works
2021-09-21 19:53:46 +03:00
kd-11
0a8d9a12ab
vk: Rewrite memory initialization
2021-09-21 19:53:46 +03:00
kd-11
19b2da2590
Enable stencil export extension when required
2021-09-21 19:53:46 +03:00
Megamouse
a50e22a11f
Overlays: Fix position of centered perf-overlay
2021-09-19 20:30:02 +02:00
Megamouse
14a425e487
rsx: wait when emulation is paused
...
This decreases my cpu usage by to <1% during Emu.Pause()
2021-09-17 23:13:24 +02:00
kd-11
c2ab3c664c
rsx: Fix stupid overflow
2021-09-17 20:12:08 +03:00
xddxd
bcda172ae7
Switch from r16ui to r16
2021-09-16 14:09:21 +03:00
xddxd
d511e76a63
Enable the precise occlusion query feature
2021-09-16 14:09:21 +03:00
Eladash
5600430a05
Fix user_interface::alloc_thread_bit() usage
2021-09-13 22:36:53 +03:00
kd-11
53457262d4
rsx: Implement ZPASS results scaling for precise stats
2021-09-06 20:04:03 +03:00
kd-11
472efc08eb
rsx: Implement precise ZCULL stats
2021-09-06 20:04:03 +03:00
Megamouse
0debcfed0a
Silence some warnings
2021-09-02 19:39:42 +02:00
kd-11
b5dcfb3431
rsx: Rework gamma override mask from RGBA to ARGB to match other per-channel mask registers
2021-08-30 11:41:19 +03:00
kd-11
a5e455d8ed
rsx/fp: Handle signed operator precedence
...
This was marked TODO for a long time
- Unsigned remap seems to be overriden by gamma mask (Resistance 3)
- We already know sign mask overrides gamma mask from UE3 titles
2021-08-30 11:41:19 +03:00
kd-11
3ab9e04db7
rsx: Fix surface access bit flags
...
- The previous enumeration was a holdover from older access management.
- A bitflag of 0 seriously messes up the mask tests
2021-08-29 11:10:30 +03:00
kd-11
b0e352c44e
Add missing const
2021-08-26 13:55:00 +03:00
kd-11
2ff407ac6a
rsx/fp: Fix perspective correction handling
...
- Perspective correction flag multiplies VP output by HPOS.w.
NOTE: Not the same as division by w when it comes to NaN/Inf problems!!
- Restructure indexed loads a bit to avoid re-initializing registers unnecessarily
2021-08-26 13:55:00 +03:00
kd-11
b0e5de4c9c
rsx: Texcoord control mask affects decompiler output!
2021-08-26 13:55:00 +03:00
kd-11
57b9acec62
rsx: Implement indexed dynamic attribute load
2021-08-24 16:52:18 +03:00
kd-11
c1f31d37f5
fsr: Mark output images explicitly as nonreadable
2021-08-24 15:30:46 +03:00
kd-11
92749f011e
vk: Experimental workaround to just disable compression
...
Applies some flags to disable aggressive optimizations on some hw.
Currently applies to AMD cards which will avoid compression if mutable
format is enabled.
This is a temporary workaround.
2021-08-23 09:34:56 +03:00
kd-11
9080d09583
vk: Add support for other formats as FSR output
2021-08-23 09:34:56 +03:00
kd-11
afc71341a5
vk: Add RADV to list of drivers with unreliable 'OUT_OF_DATE' notification when window size changes
2021-08-23 09:34:56 +03:00
Ani
1cdb2c6a26
vk: Register newer Navi GPUs ( #10740 )
2021-08-22 13:18:38 +01:00
kd-11
3eb37344cd
rsx/fp: Fix indexed TEX[n] loads
2021-08-20 11:59:05 +03:00
Eladash
fcfeac818f
Loader: Improve just-in-time installation of disc game files ( #10719 )
...
* rsx: Indexed access to surface attributes
2021-08-19 08:49:59 +03:00
kd-11
705693ecf8
rsx: Fixup image-in data length calculations
2021-08-17 23:10:42 +03:00
kd-11
8848dc6673
vk: Improve driver compatibility
...
- Add workarounds to disable compression on mesa drivers
- Separate intel proprietary vs mesa into two enumerants
2021-08-17 20:19:45 +03:00
Nick Renieris
47e784d5d0
gl/vk: Scale line width & point size by resolution scaling
2021-08-17 19:29:46 +03:00
Eladash
a346767a72
rsx: Improve rsx::recover_fifo() to take a hint from driver wake-up delay
2021-08-17 16:40:41 +03:00
Eladash
107641626a
rsx: Implement crash-proofing for image_in dst/src formats
2021-08-17 16:40:41 +03:00
Eladash
83624e1f68
rsx: Implement crash-proofing for src/dst image_in address
2021-08-17 16:40:41 +03:00
Eladash
2ce164be09
rsx: Implement crash-proofing for 308A_COLOR dst address
2021-08-17 16:40:41 +03:00
Eladash
62beaf299f
Remove old RSX instructions viewer ( #10710 )
2021-08-14 21:20:11 +03:00
kd-11
b928cb0223
vk: Fix unused variable error
2021-08-13 22:46:36 +03:00
kd-11
4b2562d02a
vk: Silence maybe-uninitialized warnings
2021-08-13 22:46:36 +03:00
kd-11
b5faa8f83c
vk: Properly calculate cubemap memory size
2021-08-13 22:46:36 +03:00
kd-11
c9afb3daaa
rsx: Significantly reduce the applied subpixel bias when handling unnormalized access
...
- If a large value is set (e.g 0.5) rounding will sample 'up' and we can read the wrong texel
2021-08-10 12:02:19 +03:00
kd-11
0031c41630
rsx: Check all attachments when generating pipeline hash key
2021-08-07 19:38:39 +03:00
kd-11
f745971cc8
rsx: Fix coordinate scaling for shadow access ( #10668 )
...
- For shadow2DProj the 3rd coordinate is actually the depth value, do not scale
2021-08-06 22:49:50 +01:00
kd-11
456b649b19
vk: Do not force check for successful texture cache load
...
The following set of conditions can fail
1. We hit a RTT owned texture
2. The texture is invalidated (failed memory integrity test) and set to write/read-through
In this situation, RTT overlap check will skip this surface, and a match can be found in texture cache if WCB/WDB is enabled.
The incoming hit however has no managed payload. This is expected behavior, the search should load from CPU.
2021-08-06 22:07:23 +03:00
kd-11
dff5707e19
Formatting fix
2021-08-06 17:18:48 +03:00
kd-11
0f5603a4bc
Disable warnings around 3rdparty header
2021-08-06 17:18:48 +03:00
kd-11
a4c1fcb59a
Fix 3rdparty imports for case-sensitive platforms (fixes *NIX build)
2021-08-06 17:18:48 +03:00
kd-11
d0a824996b
vk: Add basic support for FSR 1.0
...
- Only implemented for image upscaling.
- Disabled by default. Emulators cannot ensure upscalers are injected at the right rendering step.
- GUI integration not implemented.
2021-08-06 17:18:48 +03:00
kd-11
69b34693f0
vk: Simplify compute job cleanup on exit
...
- Just call destroy automatically on object destruct
2021-08-06 17:18:48 +03:00
kd-11
9a63ed6c50
vk: Unbind global renderer if it is destroyed
2021-08-06 17:18:48 +03:00
kd-11
6f6eda6413
vk/device: Formatting fixes only (EOL)
2021-08-06 17:18:48 +03:00
kd-11
da3c9948e6
rsx: Revert use of std::has_single_bit
...
- Zero is not a power of 2 in this situation, and we do not want to treat it as such
2021-08-04 20:28:25 +03:00
kd-11
daa8265a47
rsx: Fix interpreter texture fetch
2021-08-04 20:28:25 +03:00
kd-11
8aec943093
Use c++20 has_single_bit for POT test
2021-08-03 00:36:04 +03:00
kd-11
99b6963fab
rsx: Improve unnormalized coordinate sampling
...
- Improve rounding when sampling nearest neighbour. This is mostly a problem with NVIDIA
- Implement unnormalized 3D sampling
2021-08-03 00:36:04 +03:00
kd-11
b3c65b7bca
rsx: Implement vtc encoding for NVIDIA OpenGL support
2021-08-03 00:36:04 +03:00
kd-11
0ec526c5f1
rsx: Do not use VTC tiling on NPOT textures
...
- Seems to be ignored for 'normal' textures. Mostly verified through games.
2021-08-03 00:36:04 +03:00
kd-11
f6e4cc14a2
vk: Fix a few incorrectly calculated scratch buffer sizes
2021-07-30 12:43:21 +03:00
Nekotekina
658b4f70ef
Fix some warnings
2021-07-30 09:31:36 +03:00
Megamouse
0a7a12bbff
RSX: fix 'Working buffer not big enough'
2021-07-27 23:59:12 +02:00
kd-11
ace187cdd0
vk: Fix scratch allocation when doing GPU deswizzle
...
- We have to use double the memory because the transformation does not occur in-place like normal bswap
2021-07-27 19:56:31 +03:00
kd-11
c54ddabe0b
vk: Handle out of memory errors that are deferred during texture binding
...
- Set out-of-memory flag if we have a failure to build a subresource.
- Mark textures as requiring reload in case of references to invalid data.
- TODO: This is overly complicated and can be handled better with a smart restructure.
2021-07-27 10:52:21 +03:00
kd-11
e5029c532b
vk: Fix comparison between composite memory types
2021-07-27 10:52:21 +03:00
kd-11
a4cd9e022a
vk: Force explicit minimum size declaration for scratch buffers
2021-07-27 10:52:21 +03:00
kd-11
99bbcd15e1
vk: Fix undefined format class for typeless helpers
2021-07-27 10:52:21 +03:00
kd-11
9d11c8cbb5
vk: Allow creating temporary subresources to fail if we run out of memory.
2021-07-27 10:52:21 +03:00
kd-11
92d1534917
rsx: Set composite images upload context based on their actual contents
2021-07-27 10:52:21 +03:00
kd-11
abd8bbd6ef
vk: Allocate enough scratch memory for GPU deswizzle
...
- Forgot to take alignment into account.
2021-07-27 10:52:21 +03:00
kd-11
13abe785a9
vk: Try to spread memory usage evenly across compatible types if possible
...
- Avoids running into budget constraints if you just dump everything into one heap
2021-07-27 10:52:21 +03:00
kd-11
6a9d1edee1
vk: Fix use-after-free hazard by checking if we're faulting from within the texture cache
...
- If we're using the texture cache, DO NOT delete resources.
2021-07-25 20:55:09 +03:00
kd-11
69bdbe97a8
vk: Make use of multi-pool memory types
2021-07-25 20:55:09 +03:00
kd-11
de7ed1cbe9
vk: Scrap minimum scratch buffer size and just allocate what is requested.
2021-07-25 20:55:09 +03:00
kd-11
7d3bbd3cf7
vk: Dynamically select panic boundaries based on resolution scale
2021-07-25 20:55:09 +03:00
kd-11
59e7379010
vk: Implement heap aggregation
...
- Aggregate heaps of same type under one object and allow allocator to try each matching type.
2021-07-25 20:55:09 +03:00
kd-11
0502f7881f
vk: Disable async texture streaming on all NVIDIA cards
2021-07-20 23:00:00 +03:00
Megamouse
50354253c8
replace some random Emu.Pause with fatal errors
2021-07-20 19:47:00 +02:00
Eladash
6f901636bf
rsx: Fix vertical windows' clip
2021-07-18 13:44:23 +02:00
kd-11
0d87d909c6
vk: Fix double-spill for invalidated resources
2021-07-17 21:28:11 +03:00
kd-11
2d4df57d87
vk: Fix nul deref in spill code
...
- Restores code lost in a rebase
2021-07-17 21:28:11 +03:00