Commit graph

2270 commits

Author SHA1 Message Date
IllusionMan1212
3862cbcddc external/app: remove discord-rpc in favor of discord gamesdk 2020-09-19 15:52:01 +03:00
EXtremeExploit
c75b8db8d2 Emu: Add unicode support for base and pref path. 2020-09-15 14:51:47 +03:00
Nicolas Jallamion
6bfba911c2
firmware install: Add unicode path support. (#962) 2020-09-11 18:30:52 -04:00
IllusionMan1212
2acceac79f SceAppMgr: implement sceAppMgrSaveDataDataSave and sceAppMgrSaveDataDataRemove 2020-09-11 17:50:50 +03:00
Hesham Abourgheba
f086ce6a42 SceRtc: implement sceRtcFormatRFC2822LocalTime 2020-09-11 17:50:50 +03:00
Asada shinon
15bb8260db main: Limit Framerate when selecting applications 2020-09-11 13:30:56 +02:00
Zangetsu38
e8656f89b7 log: add log for ngs state.
gui: small reworks app icon init.
2020-09-08 16:01:05 +02:00
EXtremeExploit
407ea1296e archive/pkg install: Add unicode path support
Co-authored-by: Zangetsu38 <Dante38@free.fr>
2020-09-08 16:00:26 +02:00
sunho
122b594a99 ngs: add gui option to disable it 2020-09-08 19:20:02 +09:00
sunho
5ae95664da shader: enable early testing for programmable blending
The depth test is not in action if we use image_store to write to framebuffer. Early z testing would throw away pixel so that imagestore is not called.
2020-09-08 19:19:50 +09:00
sunho
f6332894a5 shader: consider multiple dependent sampler parameters for one sampler 2020-09-08 19:19:40 +09:00
sunho
a683e28038 gxm: fix settexturemodesafe 2020-09-08 19:19:32 +09:00
sunho
4a0a5391fa shader: fix non-zero reg start ub 2020-09-06 23:15:47 +09:00
sunho
425555fb76 shader: stub ldr 2020-09-06 23:15:47 +09:00
sunho
8f2dd87785 shader: determine uniform buffer size of stripped gxp 2020-09-06 23:15:47 +09:00
sunho
f92f9711dd shader: revert SA register maximum num
The glsl error was from half register half memory uniform buffer. We can now safely use sane value 32.
2020-09-06 23:15:47 +09:00
sunho
6b0a118d1e shader: rework uniform buffers
We used to analyze the program to determine the size of memory uniform buffer. However, this method will require tons of works when dealing with ldr with temporary register for base field. (this can happen)

From my observation, uniform parameters of memory uniform buffer are not stripped away. Utilizing this, I tried to determine uniform buffer size from uniform paramters. I also observed half register half memory uniform buffer. (this seems to happen in large default uniform buffer) In this case the size_in_f32 is less than the total size of uniform buffer, and the ldr instruction will be used to access fields not available in register. Also, the base of ldr instruction should start from the end of "register block " of uniform buffer. I updated recompiler to consider this information.
2020-09-06 23:15:47 +09:00
EXtremeExploit
5d0939b8cb gui/theme: Add unicode path support for background/start background. 2020-09-05 20:30:14 +02:00
sunho
8772766ec6 shader: clamp float when converting to int 2020-09-05 20:56:40 +09:00
sunho
4c30aedc53 shader: fix mistake 2020-09-04 21:04:35 +09:00
sunho
d8268b424b shader: fix bugs in loading and storing of vertex output with non-four components
First bug: When the component size is not 4, the vertext shader will create out variable with the actual size (that is not 4), but fragment shader always uses 4 for input variable size.
Second bug: Wen the copmponent size is 1, fragment shader will load the variable as vector with size 4. (since it's not finalized) However, util::store uses the spirv function to get components to write (it doesn't utilize dest_mask for determining size)

With these bugs fixed, we can safely remove the assert(number_of_comp_vec != 1) that we had for a long time.
2020-09-04 17:37:12 +09:00
sunho
d6a8597052 shader: correct the order and size of vertext ouputs 2020-09-04 17:37:12 +09:00
sunho
0443322202 renderer: cast non float in sceGxmSetUniformDataF 2020-09-04 17:37:01 +09:00
IllusionMan1212
e640630a6e gui/SceCommonDialog: implement info window, use firmware font, fix buttons on progress bar mode 2020-09-04 09:32:17 +03:00
IllusionMan1212
0ce103087d gui/SceCommonDialog: implement some missing msg modes and redesign msg dialog 2020-09-04 09:32:17 +03:00
sunho
620a9d3463 shader: fix vpck with f32 source
It turned out source 2 is used when swizzle refer to "z" or "w"
2020-09-04 15:26:08 +09:00
sunho
88f6a41208 shader: fix type in vtst
It was using wrong type before.
2020-09-04 15:26:08 +09:00
sunho
7565425a30 shader: int type conversion in vpck
We can now remove this conversion table and use utiliy function. Once it's in right type, store function should work correctly.
2020-09-04 15:26:08 +09:00
sunho
afe8028b57 shader: int type conversion in vbw
The destination is uint32
2020-09-04 15:26:08 +09:00
sunho
6cb683c3f1 shader: int type conversion in sop 2020-09-04 15:26:08 +09:00
sunho
a445f17f6f shader: int type conversion in texture fetch & fragment output 2020-09-04 15:26:08 +09:00
sunho
c4eb07d4f4 shader: add type conversion utility functions 2020-09-04 15:26:08 +09:00
sunho
432e574f90 shader: store and load int values with ivec and uvec in glsl
We were loading and storing using normalized float before, but this can be quite troublesome when we start to seriously implement int instructions.

1. The rounding error can result in the change in value. The error caused by rounding error assuming 0.5 ulp is +-(1/2)*2^(1-23) * 2^16 * x = +-x*1.1920929e-7*2^16 = +-0.0078125*x where x is the value we want to store. It can be serious enough to change the value after one store & load.
2. We will need a paramter that decides the final type of load that can be normalized float, float, and integer. But, we're already specifying type by op.type! Load function is given another responsibility: type conversion. This becomes more confusing in store function. The function doesn't know whether source is normalized or not, so we need another parameter. And, this parameter should mean nothing in immediate register bank, etc. aaaaa

For this reason, I'm moving to integer loading and storing using ivec & uvec. This way load and store function has less side effect. The ouput and input type of oprand is just decided by the op.type and dest_type. Instructions using load and store is in charge of type conversion now and it wouldn't be insane because they have more context.
2020-09-04 15:26:08 +09:00
Nicolas Jallamion
bc75d7223c
gui/themes: some fix/refactor (#945) 2020-09-03 19:40:11 -04:00
Zangetsu38
f05a221f07 gui/theme: some refactor.
gui/theme: Add font color support.
2020-08-30 22:59:06 +02:00
IllusionMan1212
d85ec0cd1a SceCommonDialog/SceAppUtil/io: various save fixes
* io: create parent directories of saves if they don't exist
* sceapputil: fix creating slotparam files
* scecommondialog: fix progress bar and add checks
2020-08-31 03:51:21 +09:00
sunho
a9c1bc8248 renderer: use allocator in precomputed and consider real size of textures and vertex streams 2020-08-29 11:10:31 +09:00
sunho
af22cab031 mem: move mempool util from ngs 2020-08-29 11:10:31 +09:00
sunho
d81fd7a62b shader: fix ubo not binding 2020-08-29 09:20:00 +09:00
sunho
a8bd23bbcc shader: uniform buffers inside program_input 2020-08-29 06:10:15 +09:00
sunho
cee3ecbc50 shader: add comments 2020-08-29 06:10:15 +09:00
sunho
8b176ce65b shader: fix non ubo uniforms
We copied it to pa before instead of sa.
2020-08-29 06:10:15 +09:00
sunho
d4f2b676f1 shader: refactor gxp parameter parsing
We need parsed parameters in many applications such as analyzer/fuzzer/debugger. I separated parsing part from recompiler. In the way, I fixed some bugs that are not apparent because of parsing code mixed with spirv generation code.
2020-08-29 06:10:15 +09:00
sunho
caf102d956 shader: add missing F32 in get_parameter_type_store_and_name 2020-08-29 06:10:15 +09:00
sunho
3c3ae5d94f shader: add translate_generic_type 2020-08-29 06:10:15 +09:00
sunho
3eaed47acc util: add overloaded
Used for lambda std::visit.

https://dev.to/tmr232/that-overloaded-trick-overloading-lambdas-in-c17
2020-08-29 06:10:15 +09:00
sunho
88500bad81 shader: refactor uniform buffer parsing 2020-08-29 06:10:15 +09:00
sunho
f05cd22127 shader: refactor get_parameter_type_and_name 2020-08-29 06:10:15 +09:00
sunho
1bbc744e4a shader: use swizzle decoing function instead of constant 2020-08-29 06:10:15 +09:00
sunho
4b87fb6b3e shader: implement dual frcp 2020-08-29 06:05:30 +09:00