Sergey Lipskiy
5072ec8ee8
Fix anisotropic filtering.
...
Fixed #2527 Is anisotropic filtering always ON
2021-07-22 22:17:07 +07:00
Rosalie Wanders
14229b93ba
Fix Project64 when statusbar is hidden
2021-07-21 19:58:15 +07:00
s2s
81ac29a04f
Fix an overlook in 213c10d
2021-07-21 19:56:11 +07:00
s2s
213c10d6de
Restore equivalent to old code for nativeResFactor=0
2021-06-13 21:54:52 +07:00
s2s
ce1fb27cf7
Fix detection of native-res texture rectangle when computing the texture coordinate offset.
2021-06-13 21:54:52 +07:00
Francisco Zurita
15668b9064
Wait for buffer to be empty before reallocating memory
2021-05-26 23:02:15 +07:00
Francisco Zurita
e9d08c33bd
Temporary fix for NVidia shaking on Windows
2021-05-26 23:02:15 +07:00
s2s
acfb569dea
Use a 640x640 bounding box for screen coordinates.
...
A smaller bounding box allows rendering in higher resolutions. It should be made bigger if geometry is clipped.
2021-05-15 23:31:10 +07:00
fzurita
f4a0019acf
Fix GLES 2.0 GLSL shader compilation error.
2021-05-02 18:24:11 +07:00
fzurita
6ee8c71bf0
Only try to use an EGLImage if initialization of it was successful
2021-05-02 18:24:11 +07:00
fzurita
0cf810416b
Destroy EGL image after we are done with it
2021-05-02 18:24:11 +07:00
s2s
02d12d180d
Change heuristic when using non-multiple-of-native rendering resolutions.
...
The games behave unpredictably at random rendering resolutions, so a simpler heuritic is used.
Fixes #2482
2021-04-28 17:37:12 +07:00
s2s
e70c9bfcd7
fix native rects
2021-04-19 21:55:00 +07:00
s2s
4aa7fe9fc2
Change heuristic to render texture rectangles
2021-04-19 21:55:00 +07:00
s2s
f94ffe2b9d
Increment shader storage version number
2021-04-19 21:55:00 +07:00
s2s
4e0a0186f5
Add config option for texture coordinate bounds
2021-04-19 21:55:00 +07:00
s2s
cdd1dcc438
Use texture coordinate bounds for non-native resolutions
2021-04-19 21:55:00 +07:00
s2s
acf26e613d
Apply a vertex position or texture coordinate shift to approximate N64 rasterization rules
2021-04-19 21:55:00 +07:00
s2s
39153304e1
Workaround for framebuffer textures
2021-04-19 21:55:00 +07:00
s2s
fe244c5560
Update widescreen hack
2021-04-19 21:55:00 +07:00
s2s
81318c5445
Use screen coordinates to render primitives
2021-04-19 21:55:00 +07:00
fzurita
5f7a7cadc2
Stop using predefined texture sizes introduced for Android
...
For Android we use EGL image for async copies and for sync copies and
devices that don't support EGL image, the fixed texture sizes don't seem
to improve performance.
2021-04-19 21:50:55 +07:00
Logan
7a6289b270
Fix N64 Depth Compare on Intel PC
2021-04-14 21:07:22 +07:00
Sergey Lipskiy
d27ce4781f
Fix calculation of clamping parameters for texture engine:
...
use integer part of tile coordinates to calculate tile dimensions.
Fixed texture glitches io topgear overdrive, #2464
2021-03-18 16:35:57 +07:00
fzurita
063fdae46e
Don't allow EGL image on tegra devices
2021-02-22 13:03:21 +07:00
fzurita
35554dabf0
Fix N64 Depth compare with Adreno
2021-02-17 16:58:28 +07:00
Sergey Lipskiy
442d4ed894
Fix near-palne clipping for GLES.
...
Fixes #2449 Cruis'n world invisible car
2021-02-14 01:00:10 +07:00
s2s
090b38e2d3
Optimize coverage computation algorithm
2021-02-13 15:26:25 +07:00
fzurita
f48b158c0d
Fix usage of GL extension GL_EXT_draw_elements_base_vertex
2021-02-07 11:39:19 +07:00
fzurita
dc6340bfff
Fix issue where the barycoords vertex attribute was not being disabled
2021-02-04 20:06:43 +07:00
fzurita
c92d13c094
Improve the draw elemenets base vertex check
2021-02-04 20:05:13 +07:00
fzurita
85ad11bbdd
GLideN64 soft vertex clipping performance improvement for Adreno GPUs
2021-01-22 15:14:46 +07:00
fzurita
e129d66c22
Compile shader from keys if shader storage binary is invalid
2021-01-20 22:47:33 +07:00
Sergey Lipskiy
402cf6f8b6
Implement software vertex clipping.
2021-01-20 17:07:23 +07:00
fzurita
8b75b5dc96
Fix incorrect width used for sync color buffer reads with EGLImage
2021-01-20 16:42:35 +07:00
fzurita
2aa18a8ac7
Fix recently introduced GLES 2.0 GLSL compilation errors
2021-01-05 13:40:47 +07:00
Sergey Lipskiy
955c2f3b17
Add isHWLSupported bit to CombinerKey.
...
A game may use several microcodes, where some microcodes support HW lighting and others are not.
The same combiner can be used for both cases. isHWLSupported bit helps to resolve that problem.
2020-12-28 16:18:18 +07:00
Sergey Lipskiy
ca68dc3675
Do not fail if indices of barycoords attributes are greater or equal to max vertex attributes.
2020-12-27 13:11:32 +07:00
S2S
2f8372c113
Cleanup coverage calculation
2020-12-27 12:20:46 +07:00
S2S
a214ab822e
Standarize the number of barycentric coordinate vertex attributes.
...
Use only two coordinates as vertex attributes for triangles to match the number of coordinates rectangles use. The third one can be computed in the vertex shader.
2020-12-27 12:20:42 +07:00
Sergey Lipskiy
47054eabc0
Add enableCoverage setting.
...
Not implemented for GLideNUI-wtl yet.
2020-12-27 12:20:39 +07:00
Sergey Lipskiy
2233cf9f04
Support 'barycoords' vertex attribute in unbuffered drawer.
2020-12-27 12:20:35 +07:00
S2S
61172283c1
Update blender to use coverage
2020-12-27 12:20:19 +07:00
S2S
fa848dc3f9
Fix issue with dual source blending
2020-12-27 12:01:16 +07:00
S2S
fdf3bc4f21
Compute coverage value
2020-12-27 12:01:16 +07:00
S2S
486cf59614
Load barycentric coordinates as vertex attributes
2020-12-27 12:01:16 +07:00
Sergey Lipskiy
192317955e
Limit maxMSAALevel by 16.
2020-12-26 10:24:00 +07:00
Rosalie Wanders
ddec3866a7
Implement cross-platform max MSAA level detection
2020-12-26 10:23:54 +07:00
Sergey Lipskiy
f04ac8296d
Implement max MSAA level detection.
...
Zilmar spec and Windows only.
Fixes #2216 MSAA max not 16x in UI
2020-12-26 09:51:32 +07:00
Sergey Lipskiy
8d028a9eaf
Add debug option to force enable unbuffred drawer.
2020-12-23 17:09:55 +07:00
fzurita
3b6aa38b14
Disable "draw_elements_base_vertex" extension if renderer is PowerVR and
...
GLES is < 3.2
2020-12-21 12:02:04 +07:00
fzurita
02e6ccb3ef
Fix missing check for frame buffer fetch in unemulated blending modes
2020-12-20 18:26:58 +07:00
fzurita
895401f981
Cleanup unneeded code
2020-12-17 17:57:37 +07:00
dankcushions
cb76d2f39d
Added check for GL_EXT_draw_elements_base_vertex
2020-11-25 12:49:27 +07:00
dankcushions
0e228e9109
Removed GLES version check for glBufferStorage, allowing for any device that supports it.
2020-11-25 12:47:03 +07:00
Rosalie Wanders
3df9b2c312
DisplayWindowMupen64plus: disable WithRate function on any failure
2020-11-23 14:51:28 +07:00
S2S
bb05409c16
Disable clamping for special textures
2020-11-16 10:40:47 +07:00
fzurita
e89f5fedcc
Fix build error and warning with Android
2020-11-16 10:39:10 +07:00
Sergey Lipskiy
78c89fbbfd
Fix some of PVS-Studio warnings.
2020-11-14 20:00:19 +07:00
Sergey Lipskiy
46c65776a0
Code refactor and cleanup:
...
* type cast fixes
* signed/unsigned fixes
* code formatting fixes
* class members initialization fixes
2020-11-14 16:54:28 +07:00
gizmo98
ec02cc722f
Spread bayer matrix
...
Multiplay matrix values with 2.0f so values are better spread between
1.0 and 0.0.
2020-11-13 10:08:04 +07:00
gizmo98
93ddc890e2
Use angrylion's magic square matrix
...
We use a precalculated matrix for float color values. It’s angrylion’s
matrix divided bei 16.0f * 2.0f.
2020-11-13 10:08:04 +07:00
fzurita
9aec59056f
Fix some shader compilation issues
2020-11-11 13:34:45 +07:00
S2S
ff62e3cf18
Cleanup blending code
...
Abstract extension specific code to fragment shader header
2020-11-11 13:34:45 +07:00
fzurita
f01405bc75
Implement N64 blending using framebuffer fetch extensions
2020-11-11 13:34:45 +07:00
fzurita
d509758b6f
Disable dual source blending for Adreno, it causes GPU driver crashes
2020-11-11 13:34:45 +07:00
fzurita
1b70d5b145
Fix shader compilation errors with Adreno GPUs with hybrid filter
2020-11-11 13:34:45 +07:00
gizmo98
e5d59a6394
Use angrylion's bayer matrix
...
https://github.com/gonetz/GLideN64/issues/2359
We use a precalculated matrix for float color values. It’s angrylion’s
matrix divided bei 16.0f.
https://github.com/project64/angrylion-rdp/blob/093754a4a53437925824317a
b22ce6a56748fe14/n64video.cpp#L2509
2020-10-31 13:55:10 +07:00
fzurita
c7144d0775
Fix issues with EGL image with Intel GPUs
2020-10-18 12:23:45 +07:00
S2S
5fa66762b3
Define STVEC in an Intel friendly way.
2020-10-12 12:58:14 +07:00
Rosalie Wanders
b200b33b84
DisplayWindow: introduce _restart()
...
DisplayWindowMupen64plus: m_resize{Width,Height} moved from _resizeWindow() to _restart()
2020-10-08 16:13:24 +07:00
Sergey Lipskiy
3dfa0e7622
[Code cleanup] Fix code formatting in mupen64plus_DisplayWindow.cpp in accordance with the rest of the code.
2020-10-01 18:05:24 +07:00
Rosalie Wanders
3179b37e8a
Fix _resizeWindow for M64P_GLIDENUI
2020-10-01 18:00:30 +07:00
Rosalie Wanders
366ff85de3
Allow GLideNUI to work with mupen64plus
...
* Update the mupen64plus API headers
* Add the new video extension functions in the opengl wrappers
* Pull new headers from upsteam mupen64plus-core
* Modify CMakeLists.txt
* Add GLideNUI source files
* Expose new MUPENPLUSAPI_GLIDENUI option
* This allows you to compile GLideN64 for mupen64plus with GLideNUI
* NOTE that this only works with front-ends which call PluginConfig
* Move src/windows/Config_windows.cpp to src/GLideNUI/Config_GLideNUI.cpp
* This makes more sense because it's not windows-exclusive anymore
* Add src/GLideNUI/fullscreenresolutions_mupen64plus.cpp
* This allows GLideNUI to enumerate the fullscreen refresh rates and resolutions
* Modify src/Graphics/OpenGLContext/mupen64plus/mupen64plus_DisplayWindow.cpp
* This modification allows mupen64plus with GLideNUI to use the selected fullscreen resolution and refresh rates
* Expose a new PluginConfig function which calls Config_DoConfig()
* NOTE that this only works with front-ends which call this function
* NOTE that this technically breaks the mupen spec
2020-09-16 19:02:46 +07:00
Sergey Lipskiy
15cbdc6593
[Code refactor] Remove redundant code.
2020-08-31 11:53:50 +07:00
Sergey Lipskiy
0a755614a0
Correct UTextureEngine::update() for background textures.
...
Fixed #2251 Zelda: OnePiece backgrounds broken
2020-06-21 18:15:53 +07:00
Sergey Lipskiy
f7b6f158b3
Up shader storage version.
2020-06-16 16:59:43 +07:00
Sergey Lipskiy
ed1648c438
Disable dual blending in Texrect Drawer Mode.
2020-06-14 11:51:33 +07:00
S2S
c48841cfeb
Implement dual source blending.
...
Fixes Donkey Kong 64: Gate textures change from a distance. #585
Fixes Pokemon Stadium wrong transparency in warning sign #728
2020-06-14 11:51:33 +07:00
S2S
3df3df9964
Make glBlendFuncSeparate() available
2020-06-14 11:51:33 +07:00
M4xw
4f58d66e96
Fix regressions in GLES 2.0 support introduced by a405ad8
...
- IOS compiler also doesn't like the vec2 as return Type, thus it's made a out param
2020-05-31 21:07:48 +07:00
S2S
46d170e5fb
Fix error introduced by c14ae30
2020-05-19 11:51:13 +07:00
S2S
c14ae30c6d
Fix out of bounds texel fetch. Remove Mario Tennis workaround.
2020-05-17 20:39:47 +07:00
Sergey Lipskiy
4974f64a56
Correct precision in shaders. Follow up 1a9d37053
2020-05-13 09:32:20 +07:00
S2S
1a9d370530
fix floating point precision issue
2020-05-13 09:21:53 +07:00
S2S
f5ee3523ef
Fix out of bounds texel fetch issues.
...
Fixes #2257 Dark Rift background issue
2020-05-12 10:44:54 +07:00
Sergey Lipskiy
be2f2244a2
Correct UTextureEngine::Update for special textures.
...
Fixed #2258 space silicon valley: first screen does not show
2020-05-11 17:48:18 +07:00
Sergey Lipskiy
b505d29838
[Debugger] Fix textures display.
2020-05-10 19:34:21 +07:00
Sergey Lipskiy
3f9911ab9d
Up shader storage version.
...
Fix some compilation warnings.
2020-05-10 16:40:20 +07:00
S2S
bb2221d55f
Preliminary GLES2 implementation
2020-05-10 16:24:29 +07:00
S2S
d3720145e3
Add workaround for issue with Mario Tennis Intro
2020-05-10 16:24:29 +07:00
S2S
4834359ec1
Delay texture coordinate normalization. Adapt texture filter to texture engine.
2020-05-10 16:24:28 +07:00
S2S
a405ad8659
Create Texture Engine unit
2020-05-10 16:22:36 +07:00
oddMLan
d62a653e83
Replace if statements in hybridFilter
...
if statements are bad for performance in GLSL
2020-05-10 15:56:33 +07:00
oddMLan
2b42e02e69
Fix shader compilation errors in GLSL ES
...
-Added missing precisions
-Removed explicit floats
-Explicit cast get_texture_size to vec2
2020-05-10 15:56:30 +07:00
Sergey Lipskiy
1cfdb4787d
Use hybrid filter for upscale buffer copy and plain bilinear filter for downscale one.
...
Related to PR #2242
2020-05-10 15:56:09 +07:00
oddMLan
438bcc460f
Update Hybrid Shader
...
This version doesn't use texel_fetch, hopefully fixes any slowdowns in mobile devices.
Also it offloads the bilinear filtering to the hardware.
2020-05-05 11:56:02 +07:00
Sergey Lipskiy
03b404bd4e
Use noperspective shade color only for triangles with screen-space coordinates.
...
noperspective works incorrect for polygons, which are partially out of view.
Fixed #2240 SM64 strange green textures
2020-05-04 20:20:58 +07:00
Sergey Lipskiy
d494806186
Revert "Rewrite fog coordinate calculation:"
...
This reverts commit 7d4d0f282e
.
2020-05-04 19:47:57 +07:00
Sergey Lipskiy
7d4d0f282e
Rewrite fog coordinate calculation:
...
move it from vertex shaders to fragment ones.
Fixed #2234 SM64 Weird Shading on sand texture in Joly Roger Bay
2020-05-03 18:41:20 +07:00