Quantum
3a1a9121eb
[client] egl: make FSR filter show inactive in config when disabled
2021-08-11 20:17:17 +10:00
Quantum
f80b67bc50
[client] egl: precompute FSR filter constants on CPU
2021-08-11 20:16:39 +10:00
Quantum
fe823b6172
[client] egl: display FSR equivalent quality mode
...
This also displays a tooltip to explain that quality can be changed by
altering guest resolution and also show the resolutions needed to achieve
each quality mode.
2021-08-11 20:05:27 +10:00
Quantum
c4c60fd330
[client] egl: update FSR filter state upon resolution change
2021-08-11 20:05:27 +10:00
Geoffrey McRae
5a5b867c73
Revert "[client] egl: make FSR detect an input size change and activate if valid"
...
This reverts commit 73f125dcc7
.
2021-08-11 20:05:07 +10:00
Geoffrey McRae
73f125dcc7
[client] egl: make FSR detect an input size change and activate if valid
2021-08-11 20:02:29 +10:00
Quantum
9bded74543
[host] dxgi: use CopySubresourceRegion when possible
...
This commit adds damage tracking to the DXGI textures, and only copies the
damaged areas to the textures with ID3D11DeviceContext::CopySubresourceRegion.
The sleep logic in waitFrame makes it difficult for this to reduce the
latency, but removing it shows significant improvements (6-7 ms to ~3 ms)
when a tiny portion of the screen is damaged, while showing no difference on
full screen damage.
2021-08-11 19:01:52 +10:00
Quantum
7e982a6658
[client] util: replace util_mergeOverlappingRects with common version
2021-08-11 19:01:52 +10:00
Quantum
604b44d6d8
[common] rects: add rectsMergeOverlapping helper function
...
This is based on the client's util_mergeOverlappingRects.
2021-08-11 19:01:52 +10:00
Quantum
22bbc2457e
[client] wayland: fix deadlock when using wayland:warpSupport=no
2021-08-11 19:01:18 +10:00
Geoffrey McRae
f0ea882165
[client] egl: cleanup texture filtering/post-processing
2021-08-11 18:53:36 +10:00
Geoffrey McRae
f78154d282
[client] egl: fixes to shader post-process pipeline
2021-08-11 06:31:01 +10:00
Quantum
cd5ecf3e5a
[client] egl: don't erase damage when invalidating whole window
2021-08-11 02:43:08 +10:00
Quantum
a850a1b51b
[client] egl: implement C wrappers for FidelityFX constant computation
2021-08-11 02:42:55 +10:00
Quantum
6e28d7a4a5
[client] egl: exempt shaders from copyright refresh script
2021-08-11 02:42:24 +10:00
Quantum
4a06f7cfd5
[client] cmake: make MakeObject use relative paths
...
This prevents issues like obscure characters getting transformed in symbol
names, resulting in an endless game of whack-a-mole finding symbols that are
replaced, such as 58964ce317
.
2021-08-11 02:42:12 +10:00
Quantum
c1a362f8d3
[client] egl: handle \r character when processing #includes
2021-08-11 02:41:54 +10:00
Quantum
9f4afcd944
[common] crash: use DEBUG_WINERROR on windows
2021-08-11 02:41:33 +10:00
Geoffrey McRae
4f1136d0cd
[client] core: dont warp the cursor if the overlay is active
2021-08-10 16:08:13 +10:00
Geoffrey McRae
127d3acd96
[client] egl: use a texel based version of textureGather for FSR
2021-08-10 14:21:46 +10:00
Quantum
ccee347740
[client] egl: don't define FSR_RCAS_F in ffx_fsr1_rcas.frag
2021-08-10 13:57:23 +10:00
Geoffrey McRae
c3a143732c
[client] egl: cosmetics
2021-08-10 13:46:48 +10:00
Geoffrey McRae
dc0b3a8d45
[client] egl: rework post process filters and add AMD FXR
2021-08-10 13:46:48 +10:00
Quantum
3b751a2017
[client] egl: perform full copy for framebuffer textures after resize
...
This prevents the code from using damage rectangles that are no longer on the
screen, causing an out-of-bounds write.
2021-08-10 13:42:25 +10:00
Geoffrey McRae
230ce81eb8
[client] egl: allocate space for the initial texture dimensions
...
This fixes a buffer overrun when writing to the dimensions array
2021-08-10 09:41:56 +10:00
Geoffrey McRae
e707f9d933
[client] egl: enable ffxCAS if disabled and the sharpness is changed
2021-08-10 07:56:24 +10:00
Geoffrey McRae
64ed383128
[client] egl: re-process the texture and invalidate if a setting changed
2021-08-10 07:51:23 +10:00
Quantum
685499a0e0
[client] egl: prefer gawk and mawk when building shaders
...
We'd rather use known versions of awk if possible for ease of troubleshooting.
2021-08-10 06:17:38 +10:00
Quantum
705250f23d
[client] egl: correct assign to gl_Position in basic.vert
...
gl_Position is expected to be using homogeneous coordinates, which requires
w to be a coordinate scale factor, usually 1.0. z should also be set in order
for depth to be well-defined. Therefore, we should set gl_Position.zw to
vec2(0.0, 1.0).
2021-08-10 06:10:42 +10:00
Quantum
eb680086ef
[client] egl: correctly use flexible array members for BindData
...
Array size of 0 is a gcc extension, the standard C is not declaring a size.
2021-08-10 06:10:42 +10:00
Geoffrey McRae
58964ce317
[client] cmake: replace -
with _
too
2021-08-10 02:35:16 +10:00
Geoffrey McRae
1128eb0e84
[client] x11: don't hang when there are no message pending
2021-08-10 01:47:03 +10:00
Geoffrey McRae
e41cbf5f32
[common] option: option_get_float should return a float
2021-08-10 01:36:12 +10:00
Geoffrey McRae
f2b8ff9e8d
[client] app: make overlay mode more transparent
2021-08-10 01:15:31 +10:00
Geoffrey McRae
cc3494437a
[client] egl: add ffx cas configuration options
2021-08-10 01:10:08 +10:00
Geoffrey McRae
88eada3494
[common] option: add support for float option types
2021-08-10 01:09:40 +10:00
Geoffrey McRae
37faccd014
[client] egl: allow ffxCAS sharpness configuration
2021-08-10 00:54:54 +10:00
Geoffrey McRae
30e6a258ad
[client] egl: cleanup pointer mess in egl_desktopInit
2021-08-10 00:48:41 +10:00
Geoffrey McRae
d24bc75519
[client] egl: added missing vertex shader file
2021-08-09 23:14:01 +10:00
Geoffrey McRae
92de467edc
[client] egl: add ffx_cas post process filter
2021-08-09 23:12:58 +10:00
Quantum
9b1d03fcfe
[client] egl: implement #include for shaders with awk
2021-08-09 22:04:07 +10:00
Geoffrey McRae
4eda01949d
[client] egl: give pp filters the dimensions of all prior textures
2021-08-09 22:02:07 +10:00
Geoffrey McRae
062d18d5fa
[client] egl: don't allocate the texture ringbuffer unless needed
2021-08-09 18:28:52 +10:00
Geoffrey McRae
04a54598b3
[client] egl: set a default scale for textures without filters
2021-08-09 18:27:10 +10:00
Geoffrey McRae
79dcc6d4f1
Revert "[client] egl: set a default scale for textures without filters"
...
This reverts commit 57a74c156b
.
Pushed a ton of changes that should not have been pushed
2021-08-09 18:26:30 +10:00
Geoffrey McRae
57a74c156b
[client] egl: set a default scale for textures without filters
2021-08-09 18:24:33 +10:00
Geoffrey McRae
6882e5c59f
[client] egl: provide the texture scale to the desktop shader
...
If the texture has a post-processing filter that has scaled the texture,
the desktop fragment shader needs to know this if it's doing linear
scaling.
2021-08-09 18:22:28 +10:00
Geoffrey McRae
f7f8060447
[client] egl: allow setting an output scale for a post-process shader
2021-08-09 17:57:36 +10:00
Quantum
53461d7515
[client] egl: simplify desktop vertex shader
...
In GLSL, using the / operator on two vectors of the same size divides the
vector component-wise, i.e. vec2(a, b) / vec2(c, d) == vec2(a / c, b / d).
2021-08-09 17:51:13 +10:00
Quantum
9b87f4ba5e
[client] egl: cycle through multiple textures for dmabuf
...
This avoids race conditions in GL drivers when attempting to render and
call glEGLImageTargetTexture2DOES on the same texture.
Also, when using glEGLImageTargetTexture2DOES, we do not need to allocate
storage for textures.
2021-08-09 17:12:11 +10:00