emufan4568
9b5230c60e
rasterizer_cache: Always create TextureDownloaderES
...
* It's used when dumping textures on desktop, so create it upfront to avoid null checks
2022-08-21 13:35:06 +03:00
emufan4568
1579f96397
rasterizer_cache: Remove remaining OpenGL code
2022-08-21 13:32:02 +03:00
emufan4568
fc450edd14
gl_rasterizer: Fix minor warnings and improve readability
2022-08-21 12:42:32 +03:00
emufan4568
e6137d7874
renderer_opengl: Remove GLvec* types
...
* The common types already exist and provide all the functionality required, why invent new types?
2022-08-21 12:22:58 +03:00
emufan4568
e834f2b049
gl_resource_manager: Fix bug when allocating 3D textures
2022-08-21 02:24:13 +03:00
emufan4568
2726fe66db
renderer_opengl: Header cleanup
...
* Should help with building times
2022-08-21 02:22:57 +03:00
emufan4568
07a69b7c7b
renderer_opengl: Remove amd hacks and legacy paths
...
* AMDs new driver fixed many issues in the OpenGL driver. No reason to
keep these hacks. In addition the upgrade to 4.3 guarantees the
existance of required extensions, so no need to check for them
2022-08-21 01:52:49 +03:00
emufan4568
025cd31420
video_core: Bump OpenGL version to 4.3 on desktop
...
* The current backend heavily depends on many extensions for shadow
rendering and texture cubes in the fragment shaders. All these
extensions were incorporated to core in 4.3. Support is practically
ubiquitous and requiring support for it makes things a lot easier
2022-08-21 01:39:16 +03:00
emufan4568
17ad594a62
rasterizer_cache: Introduce TextureRuntime and separate CachedSurface
...
* This commit aims to both continue the rasterizer cache cleanup by
separating CachedSurface into a dedicated header and to start weeding
out the raw OpenGL code from the cache.
* The latter is achieved by abstracting most texture operations in a new
class called TextureRuntime. This has many benefits such as making it easier
to port the functionality to other graphics APIs and the removal of the need
to pass (read/draw) framebuffer handles everywhere. The filterer and
reinterpreter get their own sets of FBOs due to this, something that
might be a performance win since it reduces the state switching
overhead on the runtime FBOs.
2022-08-21 01:16:48 +03:00
emufan4568
199671301d
rasterizer_cache: Header cleanup and copyright date update
2022-08-21 01:16:48 +03:00
emufan4568
f6e3bb54f4
rasterizer_cache: Move utlities and type to separate headers
2022-08-21 01:16:48 +03:00
emufan4568
0fedf11be1
rasterizer_cache: Move depth tuples to cpp file
2022-08-21 01:16:47 +03:00
emufan4568
22acfe4d41
rasterizer_cache: SurfaceParams interface cleanup
2022-08-21 01:16:47 +03:00
emufan4568
cb0816c987
rasterizer_cache: Compute width and height only when used
...
Solves the compiler warning
2022-08-21 01:16:47 +03:00
emufan4568
6a7d601e42
rasterizer_cache: Factor morton swizzle and pixel format to dedicate headers
...
* Makes the code cleaner in general by not having to alias PixelFormat and SurfaceType everywhere
2022-08-21 01:16:47 +03:00
emufan4568
efc2db4088
rasterizer_cache: Separate into common directory
2022-08-21 01:16:42 +03:00
pawelniegowski
b0c72c2ea7
revert GLSL version change
2022-08-10 16:36:23 +02:00
pawelniegowski
ff81fb04b4
Fix MakeCurrent and shader issues with AMD 22.7 driver
2022-07-29 12:26:18 +02:00
BreadFish64
353aaaf665
Merge pull request #6010 from SachinVin/gunman
...
shader_jit: Fixes for Gunman clive
2022-07-06 23:45:44 -05:00
SachinVin
65611e5b51
Shader jit: Save and restore LOOPCOUNT_REG
for nested loops,
...
also add the assert back for nested loops
update test
2022-05-21 11:24:32 +05:30
Morph
de1374c1b9
video_core: Resolve C4267 warning on MSVC
2022-05-18 00:05:41 -04:00
SachinVin
047e238d09
shader_jit: Compile nested loops
...
and use `T_NEAR` instead of the default in Compile_BREAKC
2022-04-24 23:12:53 +05:30
SachinVin
b5ac9e4946
Backport non-seperable disk shader from android ( #5976 )
...
* VideoCore: Backport Shader cache for non separable shaders
android: disk_shader_cache: remove redundant lookup
* disk_shader_cache: dont compile dumped shaders
* cleanup Seperable shader loading
* gl_shader_disk_cache.cpp: remove redundant checks
* Skip compiling non seperable raws
* gl_shader_manager.cpp: Skip `GLAD_GL_ARB_get_program_binary` check on GLES
2022-04-02 11:57:14 +05:30
SachinVin
d35a7a8e23
Merge pull request #5804 from weihuoya/minorfx
...
Minor fx
2022-01-30 21:51:11 +05:30
SachinVin
4e15823db2
gl_format_reinterpreter.cpp: fallback to PBO path on obsolete intel drivers ( #5928 )
2022-01-24 14:14:28 +05:30
zhang wei
afa7f4996f
fx bgr write back on gles ( #5924 )
2022-01-24 14:14:12 +05:30
trimental
2670b951e1
Fix software renderer for empty texture addresses ( #5893 )
2022-01-07 11:36:01 -06:00
bunnei
83913e68f3
Merge pull request #5905 from SachinVin/intel
...
Remove CopyImageSubData; and enable TextureView reinterpreter only on nvidia
2022-01-04 17:41:14 -08:00
SachinVin
5bd146b569
gl_format_reinterpreter.cpp: remove CopyImageSubData; and enable TextureView reinterpreter only on nvidia
2021-12-19 00:38:24 +05:30
SutandoTsukai181
60235827c5
Add Cardboard VR
...
Based on hrydgard/ppsspp/pull/12449
2021-12-18 16:52:24 +05:30
bunnei
b7a156f7c8
android: frontend: Track screen layout separately for orientation.
...
android framebuffer
2021-12-18 16:52:17 +05:30
SachinVin
e8269a9e36
gl_format_reinterpreter.cpp: attempt to skip D24S8 to RGBA8 reinterpretation fast path for older nvidia GPUs,
...
additionally check for GL_ARB_copy_image in the fallback path
2021-10-06 22:22:26 +05:30
SachinVin
6183b5d76c
Merge pull request #5823 from SachinVin/dyn
...
Android: Backport easy stuff
2021-10-03 18:58:20 +05:30
SachinVin
d4e85e2bb5
video_core: Disable disk shader cache when GL_ARB_get_program_binary is unsupported ( #5785 )
2021-10-03 18:57:34 +05:30
SachinVin
80799b1e5d
gl_shader_gen.cpp: Fix separable shaders when GL_EXT_clip_cull_distance is not supported
2021-10-02 16:38:29 +05:30
SachinVin
80b8d66017
gl_rasterizer.cpp: don't check for GL_ARB_copy_image when using GLES
2021-10-02 16:38:27 +05:30
SachinVin
228f648e3f
video_core/CMakeLists.txt: Use toolchain cmake in shader header generator
2021-10-02 16:38:26 +05:30
bunnei
9fbda04891
gl_shader_decompiler: Improve performance of accurate_mul on Android.
2021-10-02 16:38:24 +05:30
xperia64
8a68c58070
Shield TV driver bug workaround
...
shield tv
2021-10-02 16:38:22 +05:30
SachinVin
703ef0e6f0
gl_shader_gen.cpp:fix implicit type conversion error for gles
2021-10-02 16:38:20 +05:30
zhupengfei
84844e1b24
gl_shader_util: Specify default precision for uimage2D
...
Otherwise, this causes the application to crash when compiling any shader, on both devices I tested.
2021-10-02 16:38:18 +05:30
BreadFish64
e6b59cb5d8
video_core: implement optimized D24S8->RGBA8 reinterpreters
2021-10-02 16:38:17 +05:30
James Rowe
fda121c25c
Use immutable storage when available
2021-10-02 16:38:15 +05:30
BreadFish64
b2057e1b62
android: disable OpenGL debug message again
2021-10-02 16:38:15 +05:30
BreadFish64
54b8af1444
video_core: implement GLES depth/stencil downloads
...
video_core: disable depth/stencil texture download on OpenGL ES
Disable deptch stencil shader in texture_downloader_es for now
enable_depth_stencil
DepthStencil
remove GL_DEBUG_OUTPUT_SYNCHRONOUS
2021-10-02 14:19:27 +05:30
BreadFish64
91f52c2fdb
video_core: fix texture filters in GLES
...
anime4k: reset state.texture_units[0].texture_2d before filtering
clang-fmt
2021-09-29 22:51:16 +05:30
bunnei
6f1c76518c
android: renderer_opengl: Various fixes for GLES.
...
video_core: bump swap chain size for GLES to reduce bottleneck
SWAP_CHAIN_SIZE
2021-09-29 22:51:14 +05:30
bunnei
8a06463c97
android: video_core: Enable HW shadows and texture barrier on GLES.
2021-09-29 22:51:13 +05:30
bunnei
e028eb91c0
video_core: gl_shader_manager: Only set shader samplers on fragment shader.
...
- Avoids unnecessary uniform errors.
2021-09-29 22:51:13 +05:30
bunnei
3b2b9282d3
android: video_core: Require GLES 3.2 in shaders.
2021-09-29 22:51:13 +05:30
bunnei
5a31aa175d
android: video_core: gl_rasterizer_cache: Make cache access thread safe.
2021-09-29 22:51:12 +05:30
bunnei
a941547c1c
android: renderer_opengl: Partially implement glLogicOp on GLES.
2021-07-24 23:37:03 +05:30
bunnei
853acce6c5
android: renderer_opengl: Optimize GetTexImageOES and fix bugs.
2021-07-24 23:37:01 +05:30
bunnei
855d19a468
android: gl_rasterizer_cache: Skip costly shutdown procedure.
2021-07-24 23:37:00 +05:30
SachinVin
4439423313
(jroweboy)gl_rasterizer_cache.cpp: Check Framebuffer Status
2021-07-24 23:36:58 +05:30
weihuoya
cddd447506
use separate texture buffer for light and fog
...
gl_state.cpp: Fix typo in texture buffer LUT
gl_state.cpp: Initialize texture_buffer_lut_lf
2021-07-24 23:36:53 +05:30
Valeri
dd31ed60c0
Add Get(Inv)WindowResolution shader functions ( #5818 )
...
Those are available in upstream Dolphin, so it will help with keeping things compatible.
2021-07-24 12:35:33 -05:00
weihuoya
b7f0e886d9
make sure initialized, prevent garbage data
2021-06-22 15:15:33 +08:00
SachinVin
842031a2eb
Fix Disk shader cache when accurate multiplication is off ( #5711 )
...
* renderer_opengl.cpp: fix sanitize_mul check for disk shader cache
* Partially revert "Band-aid solution for 'Disk Shader Cache' (#5188 )"
This reverts commit 2e0ce86c9e
.
* Disable `disk_shader_cache` checkbox when `hw_renderer` is off
2021-05-16 10:45:02 +02:00
bunnei
9ff97270cf
Merge pull request #5501 from FearlessTobi/port-1064-3948
...
Port yuzu-emu/yuzu#1064 and yuzu-emu/yuzu#3948 : Changes to Telemetry and CPU feature detection
2021-04-23 22:58:08 -07:00
bunnei
24086d05bb
Merge pull request #5471 from vitor-k/misc
...
Fix some warnings and some small changes
2021-04-23 22:54:00 -07:00
Vitor Kiguchi
3fb1988b5b
gl_rasterizer: check for GL_ARB_copy_image
2021-04-06 00:20:00 -03:00
Vitor Kiguchi
981ffb5090
shader_disk_cache: warn the user when ARB_get_program_binary is not supported.
2021-04-06 00:19:59 -03:00
xperia64
c2d36cde9f
Fix destructor order in rasterizer cache ( #5725 )
2021-02-21 18:05:27 -05:00
Marshall Mohror
e6c479f497
Merge pull request #5710 from BreadFish64/bonk_textures
...
gl_rasterizer_cache: Remove all fully invalid surfaces from the cache
2021-02-11 19:06:03 -06:00
xperia64
2ddecf35d2
Avoid leaking fences during re-presentation ( #5713 )
...
* Avoid leaking fences during re-presentation
2021-02-09 11:32:48 -05:00
Marshall Mohror
5776bdda82
Merge pull request #5546 from FearlessTobi/port-5524
...
Port yuzu-emu/yuzu#4086 and yuzu-emu/yuzu#4611 : Xbyak cleanups
2021-02-08 16:00:18 -06:00
BreadFish64
ff56fdf37d
fix recycling custom textures
2021-02-08 15:53:06 -06:00
Marshall Mohror
00c798991c
remove semicolon
2021-02-05 08:25:02 -06:00
Marshall Mohror
6b2e7b77cc
Merge pull request #5657 from FearlessTobi/port-5158
...
Port yuzu-emu/yuzu#5158 : "video_core: Remove unnecessary enum class casting in logging messages"
2021-02-04 10:51:29 -06:00
BreadFish64
a131f9eb74
gl_rasterizer_cache: don't place null textures in the recycler
2021-02-03 13:29:03 -06:00
BreadFish64
85e9ba897d
gl_rasterizer_cache: Recycle host textures
...
Allocating new textures has fairly high driver overhead.
We can avoid some of this by reusing the textures from destroyed surfaces since the game will probably create more textures with the same dimensions and format.
2021-02-02 20:46:25 -06:00
BreadFish64
935e88a580
gl_rasterizer_cache: Remove all fully invalid surfaces from the cache
...
Some games (e.g. Pilotwings Resort) create many surfaces that are invalidated quickly but were never removed.
This occasionally lead to large lag spikes due to high lookup times and other data structure management overhead.
2021-02-02 20:43:41 -06:00
Lioncash
10f440cb59
common/telemetry: Migrate namespace into the Common namespace
...
Migrates the Telemetry namespace into the Common namespace to make the
code consistent with the rest of our common code.
2021-01-04 05:17:13 +01:00
Lioncash
9c08409e0e
externals: Update Xbyak to 5.96
...
I made a request on the Xbyak issue tracker to allow some constructors
to be constexpr in order to avoid static constructors from needing to
execute for some of our register constants.
This request was implemented, so this updates Xbyak so that we can make
use of it.
2021-01-04 05:11:18 +01:00
xperia64
94d1f695ee
Use alternate-form formatting for floats after fmt
7.1.2 update ( #5654 )
...
* Use alternate-form formatting for floats after 7.1.2 update
* Last two floats
2020-12-28 18:32:36 -05:00
FearlessTobi
20139141f7
video_core: Remove unnecessary enum class casting in logging messages
...
fmt now automatically prints the numeric value of an enum class member by default, so we don't need to use casts any more.
Reduces the line noise in our code a bit.
Co-Authored-By: LC <712067+lioncash@users.noreply.github.com>
2020-12-28 16:50:23 +01:00
Vitor Kiguchi
8e54e7cf1a
fix some conversion warnings
2020-12-06 16:01:59 -03:00
xperia64
4f058c04e8
Fix telemetry-related exit crash from use-after-free ( #5617 )
...
* Fix telemetry-related exit crash from use-after-free
* ...clang format
2020-11-22 21:45:14 +08:00
Marshall Mohror
a89261d397
Merge pull request #5580 from oneup03/master
...
Implement Reverse Interlaced 3D
2020-11-16 16:53:05 -06:00
gal20
8b82a228f0
change result back to std::optional
2020-11-14 21:46:29 +02:00
gal20
5055212063
Update src/video_core/renderer_opengl/gl_shader_manager.cpp
...
Co-authored-by: Marshall Mohror <mohror64@gmail.com>
2020-11-14 21:45:30 +02:00
gal20
03c002ee2a
make result not optional
...
This fixes crash when hardware shader is enabled in the flatpak version
2020-11-14 19:58:12 +02:00
tywald
2e0ce86c9e
Band-aid solution for 'Disk Shader Cache' ( #5188 )
...
* Enable 'Accurate Multiplication' by default.
* Move 'Disk Shader Cache' to the 'Advanced' tab
* Prevent enabling 'Disk Shader Cache' when 'Enable Hardware Shader' or 'Accurate Multiplication' is disabled.
* Do not load 'Disk Shader Cache' when 'Accurate Multiplication' is disabled.
* Add a tooltip for 'Disk Shader Cache'.
2020-11-06 10:07:59 -08:00
OneUp03
33d233fffa
Add reverse_interlaced uniform flag
2020-10-21 12:27:02 -05:00
OneUp03
a4f57e6910
Implement Reverse Interlaced 3D
2020-10-16 11:41:08 -05:00
FearlessTobi
51d348b087
General: Make use of std::nullopt where applicable
...
Allows some implementations to avoid completely zeroing out the internal
buffer of the optional, and instead only set the validity byte within
the structure.
This also makes it consistent how we return empty optionals.
Co-Authored-By: LC <712067+lioncash@users.noreply.github.com>
2020-10-03 17:25:54 +02:00
xperia64
1128f5f8ee
Silence some noisy switch case warning
2020-09-06 16:22:48 -04:00
Vitor Kiguchi
a6efc7c1ee
Separate the enums from cam/cam.h
...
The settings.h file doesn't actually need all of the definitions
on cam.h, only some of the enums. They can, therefore, be separated
into another file, which is included by settings.h instead.
The other changes are fixing files that included settings.h and
depended on indirect includes from includes of includes of cam.h
2020-08-19 01:45:57 -03:00
Marshall Mohror
f4e727cc19
Merge pull request #5420 from citra-emu/xglTextureBarrier
...
videocore: When an image is the current framebuffer and is sampled, make a copy instead of using glTextureBarrier
2020-07-07 16:45:27 -05:00
BreadFish64
60282f35fe
fix clang format
2020-07-07 16:43:42 -05:00
BreadFish64
662c348b6c
fix
2020-06-27 13:23:34 -05:00
BreadFish64
ea2584c54d
generic texture allocator
2020-06-27 13:13:37 -05:00
BreadFish64
cae4b7aaf7
Clean up
2020-06-26 15:41:10 -05:00
LC
e79de3107e
gl_resource_manager: Make use of noexcept on move constructors and move assignment operators ( #5340 )
...
Some of the classes in this file already do this, so we can apply this
to the other ones to be consistent.
Allows these classes to play nicely and not churn copies when used with
standard containers or any other API that makes use of
std::move_if_noexcept.
2020-06-23 11:00:25 -05:00
Marshall Mohror
372c653ec3
Fix clang-format
2020-06-20 14:03:04 -05:00
Marshall Mohror
353780e1c9
Merge pull request #5403 from lioncash/gen2
...
gl_shader_gen: Minor string cleanups
2020-06-20 13:09:24 -05:00
BreadFish64
b80c6f7534
handle all cases more robustly
2020-06-20 13:01:26 -05:00
BreadFish64
d04071d6b3
video_core/GLES: fix issues cause by missing glTextureBarrier
...
create a duplicate for sampling instead
2020-06-20 13:01:26 -05:00
LC
8ce81b19be
General: Remove usages of ARRAY_SIZE where applicable. ( #5392 )
...
Same behavior, but without our own boilerplate function.
2020-06-19 09:10:45 -05:00