scribam
db926ee671
rsx: Apply Clang-Tidy fix "performance-unnecessary-value-param"
2019-06-12 15:11:52 +03:00
kd-11
3cbccdd760
rsx: Fragment shader decompiler cleanup
...
TODO: Investigate the _s input modifier behaviour further, in case it can avoid generating zeroes from a MAD instruction.
x = MAD(+ve, -ve, -ve) with _s input modifier in BFBC expects result to be Non-zero
2019-04-25 16:23:05 +03:00
kd-11
463b1b220d
rsx: Improve accuracy of shadow compare Ops when non-integer depth formats are used
...
- The fixed-point D24S8 format does special Z clamping during compare which matches PS3 behaviour
- D32S8 is a floating point format and comparison with Dref > 1 always fails causing black edges/borders
2019-04-25 16:23:05 +03:00
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
kd-11
736415fcd9
rsx/fp: Detect broken/NOP shaders automatically
...
- Do not compile body if the shader is of no consequence, leave as a passthrough shader
2019-01-25 14:34:22 +03:00
kd-11
dea5193fd7
rsx: Fix FP temp register count
2018-09-03 21:39:18 +03:00
scribam
04ad49de4d
typos
2018-05-14 21:14:39 +04:00
kd-11
68b3229756
rsx/fp: Improve rgister component gather detection
...
- Also avoids clobbering register data by keeping gathered bits in a temp var
2018-03-13 18:55:03 +03:00
kd-11
a64bea1286
rsx/fp: Discard shaders with undefined (non-existent) writes. On nvidia+vulkan, undefined writes autofill with blue color
2018-02-16 16:14:54 +03:00
kd-11
33bcdd476c
glsl/fp/vp: Avoid shader clutter
...
- Do not add unused subroutines in shaders unless necessary
-- makes shaders easier to read and disassembled spir-v has less clutter
- glsl: Replace switch block with lookup table
2018-01-30 21:16:43 +03:00
lewmpk
d64e79bd9f
fix clang warning: logical-op-parentheses
2017-12-31 22:08:17 +03:00
kd-11
f7c52d3bb7
rsx/fp: Implement TEXBEM (untested)
2017-12-18 10:45:37 +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
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
a8c0dd649e
rsx/fp: RE work on precision modifier bits
...
- Testing DS2 has revealed clamping bits in SRC1 that were not respected and left negative values reaching the framebuffer
2017-11-20 15:18:57 +03:00
kd-11
17318112eb
rsx: Do not sample as pcf shader if writing a vector result
2017-06-22 23:36:15 +03:00
kd-11
110974af0b
vk/gl: Fix sampling of shadow2D textures
2017-06-22 23:36:15 +03:00
kd-11
18df292f90
rsx/fp: Better handling of flow control ops
2017-05-22 14:28:33 +03:00
kd-11
ef822d785e
rsx/fp: src3 workaround
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
Nekotekina
ceb4cb59ac
Typo fix: comparaison->comparison
2016-07-19 14:17:25 +03:00
Vincent Lejeune
149fa9d750
rsx/common: Make RSXFragmentProgram key and not just pointer.
2016-01-27 23:16:06 +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
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
DHrpcs3
d8bef46c2a
Do not use global static variables in headers
2015-12-21 05:35:56 +02:00
Vincent Lejeune
6221fecf3b
common/d3d12/gl: Start implementing cubemap sampling
2015-12-16 20:36:34 +01:00
Vincent Lejeune
9fdc458d69
rsx: Make SCT/SCB/TEX SRB function complete member of FragmentProgram
2015-11-19 19:24:57 +01:00
Nekotekina
a974ee009e
vm::var improved, cleanup
...
Mostly vm::var initialization introduced.
Added vm::make_var function.
2015-10-14 18:17:37 +03:00
vlj
2416d49dba
RSX: Add a class factorizing decompiler code
2015-05-23 20:45:07 +02:00