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
xperia64
1504018a56
Avoid deadlock when stopping video dumping ( #5407 )
...
* Avoid deadlock when stopping video dumping
* Use static_cast, make quit atomic
* One more atomic load
* Use suggested lock instead of atomic
* Fix locking
2020-06-18 18:20:57 -04:00
Lioncash
2b031e4eaf
gl_shader_gen: std::move strings where applicable
...
Avoids the creation of a copy when returning.
2020-06-08 06:59:05 -04:00
Lioncash
11792682fb
gl_shader_gen: Collapse several format calls into one
...
Same behavior, but performs one formatting pass without altering the
readability of the formatting.
2020-06-08 06:44:03 -04:00
Lioncash
e79e991681
gl_shader_gen: Mark local functions as static where applicable
...
These aren't used outside of the translation unit.
2020-06-08 06:40:39 -04:00
Lioncash
9645c1e1b2
gl_shader_gen: Eliminate unnecessary std::string construction in AppendProcTexCombineAndMap()
...
We can make use of a std::string_view here, since only string literals
are used within the switch.
2020-06-08 06:37:41 -04:00
Mat M
51dfc46d3f
gl_rasterizer_cache: Trivial minor cleanups ( #5295 )
...
* gl_rasterizer_cache: Mark file-scope functions as static where applicable
Prevents -Wmissing-declaration warnings from occurring and also makes
these functions internally linked.
* gl_rasterizer_cache: Remove unused local std::string variable
Despite being unused, compilers are unable to completely remove any code
gen related to the construction and destruction of this variable, since
the destructor of std::string is non-trivial.
Thus, we can remove it to reduce a minor amount of unnecessary code
generation
* gl_rasterizer_cache: Mark hash implementation as noexcept
This shouldn't throw.
* gl_rasterizer_cache: Remove unused variable in ClearAll()
* gl_rasterizer_cache: Make use of const on references explicit
While declared as auto&, these actually behave as const auto& variables,
due to the constness of the container being iterated. We can make this
explicit for readability sake.
* gl_rasterizer_cache: Resolve truncation warnings
The size is forwarded to a std::memset call, which takes a std::size_t
as its size parameter, so we can just make this change to silence the
warnings.
* gl_rasterizer_cache: Resolve variable shadowing warnings
Prevents a -Wshadow warning from occurring.
2020-05-18 09:19:54 -05:00
Ben
8d27b0714d
Merge pull request #5335 from lioncash/nullopt
...
gl_shader_manager: Make use of std::nullopt where applicable
2020-05-09 12:36:23 +02:00
Ben
4892d37309
Merge pull request #5336 from lioncash/constexpr
...
gl_rasterizer_cache: Make use of if constexpr in MortonCopyTile()
2020-05-09 12:36:04 +02:00
Ben
007fb63e47
Merge pull request #5230 from B3n30/circumvent_apple_intel_hw_shader_issue
...
Add flag to disable seperable shaders for osx Intel GPUs.
2020-05-09 12:34:21 +02:00
Ben
96ebd53466
Merge pull request #5264 from lioncash/gen
...
gl_shader_gen: Make use of fmt where applicable
2020-05-09 12:28:57 +02:00
Ben
e959d44f00
Merge pull request #5262 from lioncash/fmt
...
gl_shader_decompiler: Make use of fmt with the decompiler
2020-05-09 12:28:34 +02:00
Lioncash
cd201cd60f
gl_shader_gen: Make use of fmt where applicable
...
Avoids string churn and makes it significantly easier to read the shader
template strings that are being used as the basis for formatting.
2020-05-08 14:50:48 -04:00
Lioncash
38c8fecb81
gl_rasterizer_cache: Make use of if constexpr in MortonCopyTile()
...
A trivial change that allows compilers to more rigorously optimize out
code blocks that will never be executed in some scenarios.
2020-05-04 23:08:53 -04:00
Lioncash
f2a7fe05c3
gl_shader_manager: Make use of std::nullopt where applicable
...
Prevents the internal buffer in the std::optional from being zeroed out
unnecessarily and instead sets the validity byte only in some
implementations.
While we're at it, we can make use of std::move to eliminate unnecessary
heap reallocations from occurring.
2020-05-04 23:00:11 -04:00
Lioncash
016d43df98
gl_shader_decompiler: Make use of fmt with the decompiler
...
Allows us to avoid even more string churn by allowing the AddLine
function to make use of fmt formatting so the string is formatted all at
once instead of concatenating multiple strings.
This is similar to how yuzu's decompiler works, which I've made function
the same way in the past.
2020-05-04 22:40:33 -04:00
Pengfei Zhu
e212dc3a1f
Merge pull request #5297 from lioncash/missing
...
gl_rasterizer: Amend missing return value in branch in SetupGeometryShader()
2020-05-02 08:07:49 +08:00
Pengfei Zhu
4d7487bd34
Merge pull request #5298 from lioncash/unused
...
gl_rasterizer: Silence various compilation warnings
2020-05-01 23:34:36 +08:00
Pengfei Zhu
6a0636d631
Merge pull request #5296 from lioncash/flatten
...
gl_rasterizer_cache: Flatten LoadCustomTexture()
2020-05-01 23:01:47 +08:00
Pengfei Zhu
2eacb11c53
Merge pull request #5292 from lioncash/alloc
...
gl_shader_manager: Eliminate variable shadowing
2020-05-01 22:57:55 +08:00