Commit graph

1580 commits

Author SHA1 Message Date
kd-11
d6bc6ec2c1 rsx: fix initial swizzle ordering for render target data 2017-12-22 20:08:14 +03:00
kd-11
320fb5f94c rsx/fp: Fix alphakill 2017-12-22 20:08:14 +03:00
kd-11
4a0c4259f0 c++ is hard
- Remove unnecessary const definitions
2017-12-22 20:08:14 +03:00
Nekotekina
61de20a633 RSX: remove SSSE3 dependency 2017-12-20 00:04:08 +03:00
kd-11
de5dab35e0 rsx: Raise semaphore timeout duration bacause some games are very slow 2017-12-18 10:45:37 +03:00
kd-11
47060cdc5f rsx/fp: Fix typo 2017-12-18 10:45:37 +03:00
kd-11
7dd349ae8e Update FragmentProgramDecompiler.cpp 2017-12-18 10:45:37 +03:00
kd-11
4e80858bed rsx/fp: Hotfix for TEXBEM/TXPBEM 2017-12-18 10:45:37 +03:00
kd-11
e89a035e8b rsx/fp: Implement TXPBEM 2017-12-18 10:45:37 +03:00
kd-11
f7c52d3bb7 rsx/fp: Implement TEXBEM (untested) 2017-12-18 10:45:37 +03:00
kd-11
6f8dd20f03 rsx/fp: Stuff
- Implement BEM
- Add LG2 to special instructions
2017-12-18 10:45:37 +03:00
kd-11
b1a1c0251f rsx: Implement variable point size 2017-12-18 10:45:37 +03:00
kd-11
0d0821e914 rsx: Pause FIFO queue when changing ctrl registers 2017-12-18 10:45:37 +03:00
kd-11
6891323c18 rsx: framebuffer textures do not have mipmaps!
- Force mipmap count to 1 if sampling from an RTV/DSV
- TODO: Better wcb flush detection, it should be better to re-upload the texture after it has been dwnloaded if expected mipmaps are > 1
2017-12-18 10:45:37 +03:00
kd-11
7c7cd4153e rsx: Framebuffer setup fixes
- Sometimes square renders are done to surfaces with pitch=64 and re-uploaded with swizzle scanning
-- This setup avoids discarding targets if they are square and pitch == 64
2017-12-18 10:45:37 +03:00
kd-11
ff0f1510e5 rsx: Minor fixes
- Abort nv406e semaphore acquire if the rsx thread stalls/crashes
- Fix texture size approximation to take mipmaps into account. Fixes some games hanging with WCB
2017-12-18 10:45:37 +03:00
kd-11
3338fdb936 rsx: Fix RGB565 blits. Data is byteswapped on input
- Fixes messed up BG on retroarch glyphs
2017-12-18 10:45:37 +03:00
kd-11
6dfe32c6d2 fix linux builds 2017-12-18 10:45:37 +03:00
kd-11
95966a467e rsx: Texture cache fixes
- Handle blit resources in a more consistent way
- TODO: Handle some corner cases (piyotama)
2017-12-18 10:45:37 +03:00
kd-11
ac0022483a rsx: Implement delayed swizzle remap for blit engine resources
- Fixes remap vectors for memory copied via blit engine as it has no context
2017-12-18 10:45:37 +03:00
Jake
d0013679c0 rsx: fix image_in swizzled texture crash 2017-12-08 15:19:17 +04:00
kd-11
0b3fbf1d4c rsx: Narrow the race condition window further
- Needs aliased paging to be implemented to fix properly or a re-entrant global IO lock
2017-12-06 12:55:49 +03:00
kd-11
69eb483089 rsx: Framebuffer setup fix
- Stencil flag is meaningless if surface does not support stencil
2017-12-06 12:55:49 +03:00
kd-11
a2b4cf22b5 rsx: Reimplement invalidate_range_base_impl
- Avoid unprotecting memory until just before we have to write the data
- Avoids race conditions where the caller thread takes too long to enter the second phase and another thread accesses the "bad" memory
2017-12-06 12:55:49 +03:00
kd-11
970d2a06e0 rsx: Properly fix DATA3F_M register alignment 2017-12-04 18:22:18 +03:00
kd-11
9853027f72 rsx/vp: Decide default return values in case of undefined attributes based on location ID
- Different default values should be returned for different attributes
2017-12-04 18:22:18 +03:00
kd-11
90c2324e47 rsx: Program cache fixes
- Reorganize storage hash vs ucode hash
- Scan for actual fragment program start in case leading NOPed code precedes the actual instructions
-- e.g FEAR2 Demo has over 32k of padding before actual program code that messes up hashes
2017-12-04 18:22:18 +03:00
kd-11
f5145943b2 d3d12: Fix fragment shader compile 2017-12-04 18:22:18 +03:00
kd-11
960f26f84e rsx:: fixes for framebuffer setup
- provide a DSV if depth and/or stencil testing is enabled
2017-12-04 18:22:18 +03:00
kd-11
cdd4fd9867 rsx/fp: Explicitly insert global functions.
- Functions such as pack/unpack ops must exist before the shared gather functions are declared
2017-12-04 18:22:18 +03:00
kd-11
3fbc960c44 gl/vk: Better handling of inter-format data copies
- RGBA8->RG16 does not require special instructions so the overlay pass is disabled for OGL
2017-12-01 21:00:50 +03:00
kd-11
896c8991de rsx/fp: Properly implement PK/UP instructions based on NV_fragment_program documentation 2017-12-01 21:00:50 +03:00
kd-11
bec6c1a939 gl: Implement rgba8 -> fp16 casting pass
-- Is this actually necessary? The two format are binary compatible
2017-12-01 21:00:50 +03:00
kd-11
fe9090bd39 rsx/fp: Implement register gather (only for UP(X) instructions)
- Workaround for temp register aliasing between H and R variants
- TODO: Implement temp regs as 128 bit-blocks with r/w as pack/unpack
2017-12-01 21:00:50 +03:00
kd-11
44e34064de vulkan: Do not clear non-existent surfaces 2017-12-01 21:00:50 +03:00
kd-11
a18ae0f6ac rsx/fp: Reimplement PK(X) and UP(X) opcodes. The read back values are obviously in normalized range
- Confirmed with a GOW shader which writes result of UP8 to BGRA8 output
2017-12-01 21:00:50 +03:00
kd-11
08b829dc22 rsx: wcb scaling fixes 2017-12-01 21:00:50 +03:00
kd-11
9d27ac359b gl: Minor wcb tweaks 2017-12-01 21:00:50 +03:00
kd-11
6c9c300fe0 rsx: Fix texture cache memory usage statistics 2017-12-01 21:00:50 +03:00
kd-11
17340c44cc rsx: method register fixes
- Fix VERTEX_DATA_3F_M element alignment (its 16 bytes per attribute)
- Fix DATA_2S_X interpretation type. Its signed 16-bit unnormalized (s32k) and not signed normalized (s1)
2017-12-01 21:00:50 +03:00
kd-11
90a3f3af30 rsx: Discard queue if RET is found without CALL 2017-12-01 21:00:50 +03:00
kd-11
da1e97618b rsx: Changes to surface pitch handling
- Zeta pitch is ignored by real HW for some reason
- Monitor ptch value changes as well since they may affect disabled surfaces
- TODO: Verify if MRT pitch is really taken into consideration
2017-12-01 21:00:50 +03:00
kd-11
89bc333295 vk: Compliance fixes; vkCmd state affects currently bound descriptor set! 2017-12-01 21:00:50 +03:00
kd-11
3350e7ee55 rsx: Fixes for framebuffer setup code 2017-12-01 21:00:50 +03:00
kd-11
ddebc334bf rsx: Fixes
- Discard intentionally invalidated framebuffer resources. These are created after a flush has happened, forcing reupload since contents cannot be guaranteed (strict mode only)
- Fix for blits using vulkan; dont use the copy method if formats do not match, use generic blit instead
2017-12-01 21:00:50 +03:00
kd-11
145ecb00fc rsx: Texture cache hotfixes 2017-12-01 21:00:50 +03:00
kd-11
75d0ff177d gl: Avoid null deref 2017-12-01 21:00:50 +03:00
kd-11
4d75e98647 rsx/fp: Do not apply input mods to all types of inputs
- Temp registers are confirmed to be affected
- Const registers are confirmed to be unaffected
- Varying inputs are not confirmed yet
2017-12-01 21:00:50 +03:00
kd-11
3bfdcf698d rsx: More tuning for depth/color buffer selection 2017-12-01 21:00:50 +03:00
kd-11
51891039dd rsx: improve depth/color contested memory allocation heuristics
- Needs more tests to prove correct behaviour
2017-12-01 21:00:50 +03:00