kd-11
06a85f00d1
rsx: Shader decompiler cleanup and improvements
...
- Improve support for float16_t by minimizing mixed inputs to functions
(ambiguous overloads)
- Minimize amount of downcasts in code by using opcode flags
- Re-enable float16_t support for vulkan
2019-04-25 16:23:05 +03:00
kd-11
a668560c68
rsx: Use native half float types if available
...
- Emulating f16 with f32 is not ideal and requires a lot of value clamping
- Using native data type can significantly improve performance and accuracy
- With openGL, check for the compatible extensions NV_gpu_shader5 and
AMD_gpu_shader_half_float
- With Vulkan, enable this functionality in the deviceFeatures if
applicable. (VK_KHR_shader_float16_int8 extension)
- Temporarily disable hw fp16 for vulkan
2019-04-25 16:23:05 +03:00
scribam
d7bb59cd99
c++17: use std::size
2018-09-06 13:15:59 +03:00
eladash
f349695a75
Rsx: rewrite address translation
2018-08-13 16:16:34 +03:00
scribam
04ad49de4d
typos
2018-05-14 21:14:39 +04:00
kd-11
9fc1740608
rsx/fp: Fragment program overhaul
...
- Separate TXB from TXL: They are completely different!
- Properly perform TMU emulation in the fragment shader. Implemens SRGB conversion and alphakill at the moment
- Properly perform ROP emulation in the fragment shader. Implements FRAMEBUFFER_SRGB. While support on the chip looks to be incomplete (and wierd), it does work
- Document some more bits in SHADER_CONTROL register
2018-03-25 13:31:06 +03:00
kd-11
4804efc17d
rsx: Clear up confusion on depth writes.
...
According to the NV_fragment_program spec, its not feasible to have 16-bit depth wries
NOTE: NV_fragement_program precedes NV_fragment_program2 which is very
close to what RSX consumes. It is hardware from that era afterall
2018-03-13 18:55:03 +03:00
kd-11
f5145943b2
d3d12: Fix fragment shader compile
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
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
12ab03b0b5
rsx/gl: Implement resolution scaling
...
rsx: Revise wpos calculation to take resolution scale into account
2017-10-09 20:25:41 +03:00
kd-11
f71f67c4ff
rsx: Make fragment state dynamic to reduce shader permutations
2017-08-26 21:53:54 +03:00
kd-11
a69f19a9ab
rsx/decompilers: Avoid std::endl like the plague. It adds extra processing overhead
2017-06-29 13:13:19 +03:00
kd-11
b2e906f4cc
rsx: Code cleanup. Fixes several dozen warnings
...
- Wrap unused parameters as comments to prevent C1400
- Fix sized variable conversions with explicit casts
2017-06-22 23:36:15 +03:00
shameful
e93c4c42b6
fix for shader fog mode exponential2_abs ( #2781 )
...
* Update VKFragmentProgram.cpp
added missing exponent parameter
* fixed misplaced exponent in VKFragmentProgram.cpp
parameter that belonged to pow() was being passed to exp() instead, causing the shader compilation to fail
* fix for opengl fog_mode exponential2
same fix as the vulkan version
* directx fog_mode exponential2 fix
misplaced parameter
* directx fog_mode exponential2_abs fix
* vulkan fog_mode exponential2_abs fix
* opengl fog_mode exponential2 fix
2017-05-14 12:56:24 +08:00
kd-11
c5975d5f66
rsx: Vertex program output fixes
2017-05-12 20:10:03 +03:00
Jake
ac58953276
Fix typo/spacing from userclip
2017-04-29 01:26:03 +03:00
Jake
60ce85f840
[Render] Userclip for d12/vk/ogl ( #2719 )
2017-04-25 18:32:39 +08:00
kd-11
8fa3f0721e
fix false alphakill flags when texture fetch is optimized away
2017-03-24 09:30:23 +03:00
kd-11
be4bb48476
rsx/fp: Fix some decompiler bugs
2017-03-13 23:40:34 +03:00
kd-11
d6159a35aa
gl/vk/dx12: Fix texture scaling on unnormalized rtt access
2017-02-11 15:45:59 +03:00
kd-11
38562155d4
gl/vk: Flip wpos if origin != top
2016-09-28 07:22:45 +08:00
raven02
38f35df7b6
DX12: enable alpha kill ( #2158 )
2016-09-26 18:38:52 +08:00
Nekotekina
ceb4cb59ac
Typo fix: comparaison->comparison
2016-07-19 14:17:25 +03:00
Nekotekina
266db1336d
The rest
2016-05-23 16:22:25 +03:00
Nekotekina
b85a68e8a1
Partial commit: RSX
2016-04-15 19:22:36 +03:00
Vincent Lejeune
1dcc6858b4
d3d12/gl: Separate fog distance and fog frag in fogc input.
2016-03-05 18:25:31 +01:00
Vincent Lejeune
32434dd848
rsx/common/d3d12/gl: Support for fog mode.
...
Fix hitman 2
2016-02-29 16:31:18 +01:00
Vincent Lejeune
62246f75c8
d3d12/gl: Supports SSA in Fragment Shader.
2016-02-27 00:21:10 +01:00
Vincent Lejeune
9ef24509cb
d3d12: Use a shared root signature and add more slots
...
This allows for finer grained rebinding later.
2016-02-21 17:55:34 +01:00
Vincent Lejeune
837e06e85b
rsx/common/d3d12: Support non default alpha function
...
Fix After burner climax cloud effects.
2016-02-13 17:07:12 +01:00
kd-11
843d0ed298
Fragment position is given as gl_FragCoord not gl_Position
...
Fix references to gl_Position in Dx12
2016-02-12 18:34:41 +03:00
Vincent Lejeune
f0dc38cadd
rsx/common/d3d12: Support back spec/diffuse color.
...
Fix green car in Outrun.
2016-02-08 17:35:52 +01:00
Vincent Lejeune
1f7a1e4078
rsx/common/d3d12/gl: Fix lit and rsq behavior near 0 in vertex shaders.
2016-02-08 17:35:49 +01:00
Vincent Lejeune
3d960064ef
d3d12: Use unnormalized_coords info in RSXFragment
2016-01-30 22:04:36 +01:00
Vincent Lejeune
f6d2409b20
rsx/common/d3d12: Support for shader window setting.
2016-01-30 21:58:12 +01:00
Vincent Lejeune
5f35f2ac7d
rsx/common/d3d12: Support for texture 1d too.
...
They are used in after burner climax
2016-01-30 01:13:15 +01:00
Vincent Lejeune
6384541345
d3d12: Store vertex attributes as SRV and disable Input_layout.
2016-01-26 23:13:29 +01:00
Vincent Lejeune
24255f7883
rsx/common/d3d12/gl: Add some texture info to RSXFragmentProgram
2016-01-26 17:56:01 +01:00
Vincent Lejeune
6aac972bda
d3d12/gl: Use r1 as depth output.
...
The "Output_from_h0" flag seems to concern color output.
There might be another flag for depth from half float value.
2016-01-19 00:45:26 +01:00
Vincent Lejeune
b8e10225f9
d3d12: Use first color output for alpha discard instead of 0.
...
Fix Naruto 2 shader miscompilation.
2016-01-16 18:25:18 +01:00
Vincent Lejeune
bab52c132d
rsx/common/d3d12/gl: Clean ProgramStateCache
...
Use a_b_c format.
Use using =
Use tuple as output
Use RAII to delete program safely
Ensure const correctness.
2016-01-11 19:21:57 +01:00
Vincent Lejeune
675ccd4510
rsx/common/d3d12/gl: Mimic divsq and rsq fragment instruction behaviour with 0.
...
Fix Super Puzzle Turbo HD 2 and SH3 HD
2016-01-09 23:18:05 +01:00
Vincent Lejeune
44840dbbcf
d3d12: Support early return in fragment shaders.
2015-12-28 00:19:37 +01:00
Nekotekina
3ed603074c
Changes done by [DH] rewritten
...
Added rsx_program_decompiler submodule
Added fs::dir iterator
Added fmt::match
2015-12-22 23:11:20 +03:00
Vincent Lejeune
6221fecf3b
common/d3d12/gl: Start implementing cubemap sampling
2015-12-16 20:36:34 +01:00
Vincent Lejeune
929f518ef3
rsx/d3d12/gl: Make output write backend dependent.
2015-12-16 20:36:31 +01:00
Nekotekina
3465106456
Shared PCH (experimental)
...
"Rebuild" is broken though.
2015-12-04 23:37:44 +03:00
Vincent Lejeune
88d7feda5c
d3d12: Support unormalized texture coordinates
2015-12-01 23:18:27 +01:00
Vincent Lejeune
f4091b1027
d3d12: Fix fragment shader accessing to gl_Position
2015-12-01 22:42:34 +01:00