1
0
mirror of https://github.com/blawar/GLideN64.git synced 2024-07-02 09:03:37 +00:00
Commit Graph

528 Commits

Author SHA1 Message Date
Sergey Lipskiy
0bc6cf7a11 New LLE render. 2020-04-27 17:05:42 +07:00
Logan McNaughton
7ef3be1cab Mask VI_ORIGIN address 2020-04-15 11:12:42 +07:00
Sergey Lipskiy
d8f031294a Use linear equation for LOD calculation,
as proposed by standard-two-simplex in #2203
2020-04-09 15:06:59 +07:00
S2S
2c51fb096f Magnify clipping space by ClipRatio.
Fixed #190 Cruis'n World: wrong logo
2020-04-06 20:01:53 +07:00
Sergey Lipskiy
5ff3ef9649 Dithering shader: correct read threshold value from matrices. 2020-03-31 18:31:44 +07:00
Sergey Lipskiy
a0991dc9cf Refactor shader dithering code: replace mix by switch..case 2020-03-31 18:31:44 +07:00
Sergey Lipskiy
beee2bc368 Use enableHiresNoiseDithering setting. 2020-03-31 18:31:43 +07:00
Sergey Lipskiy
d7e3b4c84b Some dithering shaders refactoring. 2020-03-31 18:31:43 +07:00
Sergey Lipskiy
897fc35d51 Remove ditheringMode and bufferDitheringMode settings.
Add new settings:
- enableHiresNoiseDithering
- enableDitheringPattern
- enableDitheringQuantization
- rdramImageDitheringMode

New settings are not implemented in GUI yet.
2020-03-31 18:31:43 +07:00
Sergey Lipskiy
2600a6bc90 Remove "Enable noise" oprion. Emulation of noise is always enabled. 2020-03-31 18:31:42 +07:00
Sergey Lipskiy
d621eb4d34 Add enum DitheringMode for better readability.
Few fixes.
2020-03-31 18:31:41 +07:00
gizmo98
350d791596 -Remove enableDithering setting and use ditheringMode for everything
-Dithering Modes:
0 disabled
1 noise dithering
2 noise dithering with 5Bit quantitzation
3 noise and ordered grid dithering
4 noise and ordered grid dithering with 5Bit quantitzation
-Quantize dithered alpha (5Bit). Removes white remnants in SF Lylat
Wars.
2020-03-31 18:31:40 +07:00
gizmo98
0597632f8a Add dithering options and better color noise dithering
-Add enableDithering option: true - dithering enabled; false -
dithering disabled
-Add ditheringMode option: quantize noise or ordered grid dithered
content like original hardware would do it. true - quantize to 16Bit
colors, false 32Bit colors.
-Add snoiseRGB() and snoiseA() functions. Color dithering needs
different noiese values for r, g and b.
-snoiseRGB() and snoiseA() „double“ noise resolution if uScreenscale is
>= 2.0. So noise not so blocky but still grainy at higher resolutions.
-Increase config version to 28U
2020-03-31 18:31:40 +07:00
Logan McNaughton
85a8635952 Update to XXH3 for CRC_OPT 2020-03-30 21:16:59 +07:00
Sergey Lipskiy
022b375614 RE2 related fixes:
* fixed gSPModifyVertex for case when primitive depth enabled
* fixed GraphicsDrawer::isRejected for case when coordinates of vertex set by gSPModifyVertex
* fixed writeDepth() shader for RE2

Fixed various issues mentioned in #2152
2020-03-18 14:50:45 +07:00
Sergey Lipskiy
8a9d52b41b Fix static noise on screens in Space Station Silicon Valley.
Problem: the static on the screens is the result of alpha test with a random threshold.
The screens use 2 cycle combiner. First cycle for alpha uses "combined" input.
A value for this input is not set yet in the first cycle, so the result of alpha test is usually wrong.

Solution: replace "combined" input in the first cycle by special "half" input.

Fixed #1764
2020-03-08 23:28:54 +07:00
fzurita
0a5216f8e1 Make the hybrid texture filter optional through configuration 2020-02-12 11:51:04 +07:00
Sergey Lipskiy
0692abea4a Re-implement slower N64 depth compare synchronization method,
which requires only core OpenGL 4.2 without shader_interlock extensions.

Fixed N64 depth compare with older AMD GPU.
2020-02-09 19:03:53 +07:00
Sergey Lipskiy
495d9f959e Simplify aTexScale calculation in UClampWrapMirrorTex::update 2020-01-12 19:52:42 +07:00
fzurita
44ce554d5f Fix issues with EGL image public API on GLES 2.0 2019-11-30 15:54:59 +07:00
Sergey Lipskiy
d52d402d76 Do not use hybrid filer for GLES 2.0 due to poor performance.
Shader and code simplifications.
2019-11-30 15:54:54 +07:00
Sergey Lipskiy
25b270492e Revert "Don't use glGetTexLevelParameteriv to determine texture size"
This reverts commit b31e510932.
2019-11-30 15:31:43 +07:00
fzurita
49bdffb954 Fix shader compilation errors with Adreno devices 2019-11-30 15:30:50 +07:00
fzurita
6ac44db414 Don't use glFlushMappedBufferRange in debug mode, the performance
penalty is too high
2019-11-29 11:55:57 -05:00
fzurita
b31e510932 Don't use glGetTexLevelParameteriv to determine texture size 2019-11-29 15:56:22 +07:00
fzurita
a2fbea9086 Fix GLSL ES 1.0 compilation error 2019-11-29 15:50:34 +07:00
fzurita
0abaad4aee Fix shader compilation errors in GLSL 3.0 2019-11-29 15:02:35 +07:00
Sergey Lipskiy
2b5e8786d1 Add support for TEXTUREMODE_BGIMAGE in UClampWrapMirrorTex::update()
Fixed #2107 Majora's Mask OnePiece backgrounds broken
Fixed #2141 RE2 corrupt video
2019-11-28 19:13:26 +07:00
Francisco Zurita
9c4653a148 Throw an exception if a buffer greater than the ring buffer pool max size is allocated instead of dead locking forever. 2019-11-28 17:33:56 +07:00
Sergey Lipskiy
f918a909c7 Remove opacity check from hybridFilter shader. 2019-11-28 12:31:31 +07:00
Sergey Lipskiy
488d52de16 Use hybrid texture filter to draw frame buffer image on screen.
Related to #2088
2019-11-27 19:25:19 +07:00
Sergey Lipskiy
a01718d2cf Correct needMirror condition in clampWrapMirror shader.
Fixed Blast Corps regression #2113
2019-11-21 17:25:57 +07:00
Sergey Lipskiy
27128fe505 Correct error output in DisplayWindowMupen64plus::_getDisplaySize(). 2019-11-20 12:40:53 +07:00
Sergey Lipskiy
517723d308 Up shader storage version. 2019-11-14 11:46:51 +07:00
S2S
49604f0c16 Write wrap function. Cleanup of combiner code. 2019-11-14 11:46:46 +07:00
S2S
a42e34f1b8 Write macros for reading a vector or matrix without hurting performance. Cleanup blender code. 2019-11-14 11:46:32 +07:00
Sergey Lipskiy
9dff907f15 Do not shift texture coordinates for frame buffer textures.
Fixed #2112 Conker black line following your shadow
2019-11-12 10:54:56 +07:00
Sergey Lipskiy
ad85856ee7 Replace printf by LOG.
Fixed #2123
2019-11-04 18:27:01 +07:00
fzurita
17b8e34799 Add logging of OpenGL profiling data 2019-11-04 15:03:36 +07:00
fzurita
d7996329c1 Added more GL functions to threaded GL implementation 2019-11-04 14:54:05 +07:00
fzurita
e333dea890 Fix GL errors when using EGL image to read pixel from texture 2019-11-04 14:30:37 +07:00
fzurita
9059bb38d3 Add GL function glDebugMessageCallback and glDebugMessageControl 2019-11-03 23:07:05 +07:00
Sergey Lipskiy
a87f7c4022 Log CoreVideo functions error code. 2019-11-03 23:00:54 +07:00
fzurita
ffaaf1f664 Fix incorrect OpenGL function init in iOS 2019-10-25 11:17:14 +07:00
fzurita
3c875ef3a6 Fix incorrect OpenGL function init in MacOS 2019-10-25 11:17:14 +07:00
Sergey Lipskiy
0338f27225 Do not shift texture coordinates by 0.5 for point-sampled textures.
Attempt to fix texture mapping issue from #2097.
2019-10-14 14:11:24 +07:00
fzurita
1384584af6 Fix threaded OpenGL lockup when trying to remove invalid buffer 2019-10-14 14:10:08 +07:00
fzurita
462dd2a9bc FIx EGL image compatibility with mali devices 2019-10-05 22:41:33 +07:00
fzurita
4c87af5975 Don't initialize EGL, this is causing issues 2019-10-05 22:41:33 +07:00
fzurita
8cdf5a41d8 Don't crash on failed initialization 2019-10-05 22:41:33 +07:00
fzurita
4a10c0a7fa Fix incorrect OpenGL function init in Linux 2019-09-30 21:48:36 -04:00
fzurita
d6ad676436 Fix EGL initialization in applications that don't implment VidExt 2019-09-30 21:48:36 -04:00
fzurita
7861d14060 Fix issue with lack of highp floating numbers in GLSL for GLES 2.0. 2019-09-30 21:48:26 -04:00
fzurita
8817e2c549 Fix logging error 2019-09-29 09:25:04 -04:00
fzurita
415e63d6d1 Fix shader compilation error in GLES 2.0 2019-09-29 16:08:44 +07:00
Sergey Lipskiy
86a227308e Implement copy depth to main depth buffer. It is necessary for correct work of some Reshade shaders. 2019-09-27 19:33:18 +07:00
Sergey Lipskiy
34c6cae364 Fix compile errors in opengl_ColorBufferReaderWithEGLImage.cpp
Fixed #2083
2019-09-05 18:53:38 +07:00
Sergey Lipskiy
10ec517fe9 Code refactor in GLInfo::init() 2019-08-31 11:05:44 +07:00
Sergey Lipskiy
c28ea61b8f Fix for texture issues in Stunt Racer, reported by DonelBueno in #1885
Stunt Racer uses combiner with two textures for track polygons, but actually loads only T0.
T1 replaced by T0 because of LOD flags in othermode.
This situation was not checked in the main code and ClampWrapMirror shader got wrong parameters,
which lead to the glitches.
2019-08-16 19:10:09 +07:00
Sergey Lipskiy
2d712f2ae0 Rewrite textures loading and mapping:
- use RiceVideo method for texture size calculation.
  RiceVideo uses the same method for texture dumping.
- rewrite texture mapping.
  Texture Clamp-Wrap-Mirror implemented in shaders.

Problem explanation:
https://github.com/gonetz/GLideN64/issues/1885#issuecomment-485136358

Fixed various glitches with HD textures, #1885
2019-06-19 19:02:52 +07:00
Francisco Zurita
c06c593eba Improve logging information 2019-04-23 11:15:41 +07:00
Sergey Lipskiy
8debfdb81c Correct GLES2 version of mip-map shader. 2019-04-22 21:45:11 +07:00
Francisco Zurita
8f26645407 Fix crash with GL_DEBUG enabled with mupen64plus API
Also, fix compiler warning
2019-04-15 09:09:39 +07:00
Francisco Zurita
92bcbe5981 Fix issues with threaded OpenGL when debug is enabled 2019-04-10 12:55:09 +07:00
fzurita
5df3f9dbac Threaded GLideN64 calls 2019-04-08 10:51:18 +07:00
Sergey Lipskiy
7f5f6256f3 Apply gamma correction to text drawer textures.
Fixed #2030 : Font rasteriser doesn't perform gamma correction

Thanks Clownacy for the idea.
2019-04-01 16:30:36 +07:00
Sergey Lipskiy
96ccfc63af Correct mip-map shader: lod could be larger than actual number of levels in mip-map texture.
Fixed mip-mapped textures in Automobili Lamborghini with 3point filtering enabled.
2019-03-03 15:17:52 +07:00
Sergey Lipskiy
3704b37c3e Fix some of PVS-Studio warnings. 2019-03-03 11:47:10 +07:00
Sergey Lipskiy
6022f510f5 Correct getStorageFileName: set user-preferred locale before using string conversion functions. 2019-02-24 12:07:13 +07:00
fzurita
b40e6f44c1 Fix shader storage with Android 4.4 2019-02-24 11:49:15 +07:00
fzurita
164b44e8e5 Fix shader compilation in GLSL 2019-02-23 15:05:06 +07:00
fzurita
9033a4d536 Fix build errors when using CMake with RPi 2019-02-19 15:18:39 +07:00
Sergey Lipskiy
9bf36d390a Implement 3-point texture filtering for mipmapped textures.
Fixed #1558 3-point texture filtering doesn't work with mipmapped textures.
2019-02-16 20:45:51 +07:00
Sergey Lipskiy
32901bf5dd Add option enableHalosRemoval for bilinear filtering. 2019-02-07 17:23:20 +07:00
fzurita
2712e8f509 Cleanup EGL image code 2019-02-05 21:48:26 +07:00
gizmo98
164b1056b3 Add bilinear filtering modes which remove halos around transparent textures
This workaround is not implemented for gles2 devices.
2019-02-05 21:09:36 +07:00
fzurita
f209304d0b Add support for Android EGL Image Public API 2019-02-05 17:30:58 +07:00
Sergey Lipskiy
2b7f78c9f8 Fix depth buffer clear when otherMode.depthCompare enabled.
Fixed 1080 Snowboarding (JU) FB off breaks games ( regression) #1976
2019-02-03 18:01:01 +07:00
Sergey Lipskiy
f787483dbb Correct condition for uEnableDepth uniform.
Fixed depth compare for particles in Indiana Jones when N64 depth compare enabled, #1977
2019-01-12 14:34:00 +07:00
Sergey Lipskiy
cb0cf5bed9 Fix depth_compare shader:
always write depth to buffer when otherMode.depthCompare flag is off.

Up shader storage version.

Fixed 2 players mode in Extreme-G XG2 (U) with N64 depth compare enabled, #1963
2018-12-18 16:04:37 +07:00
orbea
a5fc0689ac Fix performance with radeonsi.
This takes Donkey Kong 64 from 12 fps to full speed with framebuffer
emulation enabled.
2018-12-11 11:35:56 +07:00
zilmar
459fb32106 Revert OS_WINDOWS changes 2018-11-25 18:34:16 +07:00
zilmar
d50aabaa10 Stop using OS_WINDOWS 2018-11-25 18:34:16 +07:00
Sergey Lipskiy
f72553a524 Fix depth compare for texrects rendered with TexrectDrawer.
Fixed Duke Nukem 64: 2D Render Issue #1915
2018-10-21 20:19:41 +07:00
Sergey Lipskiy
217ef2557d Add ability to save content of frame buffer to file for debug purposes. 2018-10-17 15:52:52 +07:00
Sergey Lipskiy
9f1bbeab9f Rewrite primitive depth calculation.
Up shader storage version.

Fixed Star Wars Episode I - Racer: Overlapping #1911
2018-10-01 22:37:03 +07:00
Sergey Lipskiy
9f936be57e Correct condition for texture filtering: remove (gSP.objRendermode&G_OBJRM_BILERP) != 0 from the condition.
It seems that flag G_OBJRM_BILERP in objRendermode does not mean that texture will be filtered.
2018-09-30 18:03:46 +07:00
Sergey Lipskiy
5e1c8a6b58 Do not use clearDepthBuffer in FillRect. Use drawRect only. 2018-09-24 22:02:25 +07:00
Sergey Lipskiy
9705f5d520 Implement FXAA 2018-09-09 16:36:09 +07:00
Sergey Lipskiy
22267831e0 Optimize ShaderN64DepthCompare a little bit. 2018-09-06 22:54:07 +07:00
Sergey Lipskiy
9b487453a6 Correct URenderTarget::update()
Depth buffer not cleared if SetDepthImage called after Fillrect.

Fixed Ocarina of Time Link's portrait missing with N64 deph compare #1850
2018-09-06 22:54:00 +07:00
Sergey Lipskiy
62b8103e46 Support FRONT_AND_BACK culling mode.
Fixed Super Smash Brother Gfx issue on Dreamland stage #487
2018-08-24 16:16:06 +07:00
Sergey Lipskiy
3e0c635ad2 Correct mipmap shader for case when max tile is 0.
Up shader storage version.
2018-06-16 18:41:51 +07:00
Sergey Lipskiy
b9bfbf40e8 Indi Particle Optimization hack.
Add F5INDI_PARTICLE_OPT define to enable.
2018-06-16 18:41:50 +07:00
fzurita
582bfe353f Improve check for buggy fragment shader interlock
Nvidia Drivers greater than or equal to 390.00 don't seem to crash with
it.
2018-06-16 00:13:55 +07:00
gizmo98
4750e10076 Use _FIXED2FLOATCOLOR 2018-06-02 21:35:32 +07:00
Logan McNaughton
e80577e105 Allow non-0 default framebuffer 2018-05-22 08:25:24 -06:00
Logan McNaughton
44068412f4 Revert "Add the iOS framebuffer binder from @braindx"
This reverts commit ff904fc51e.
2018-05-19 16:08:07 +07:00
Logan McNaughton
6ddaba8ec5 Remove FB Attachment caching 2018-05-08 16:27:37 +07:00
Sergey Lipskiy
67f797240d Shader noise returns 0.5 when noise emulation disabled.
Fixed Paper Mario - Text from Stars is invisible #1540
2018-05-06 21:28:31 +07:00
Sergey Lipskiy
6725ad474a Fix warnings of 64bit compiler. 2018-05-06 15:54:12 +07:00
Sergey Lipskiy
10710f96ac Fix warnings from compiler and static code analizer. 2018-05-06 15:28:07 +07:00
Logan McNaughton
9bda0568a8 Copy FBO texture if glTextureBarrier is unsupported 2018-04-20 22:56:17 +07:00
Sergey Lipskiy
75ea06cec7 Code refactoring: fix issues found by static code analizer. 2018-04-19 20:16:21 +07:00
Sergey Lipskiy
f26b99a93d Add comment that _glinfo.imageTextures or _glinfo.ext_fetch
must be enabled when config.frameBufferEmulation.N64DepthCompare != 0
2018-04-19 12:13:53 +07:00
Logan McNaughton
1fe9ce3bf9 Fix BAR Fog with N64 Depth Compare 2018-04-19 12:04:39 +07:00
Logan McNaughton
6a10a83d09 Fix RE2 and NFL QB Club 98 on GLES 2018-04-16 21:38:42 +07:00
fzurita
e958eca3ed Disable usage of *_fragment_shader_interlock with tegra
It causes lockups with at least Tegra X1.
2018-04-16 20:51:55 +07:00
Logan McNaughton
c9cf91e8da Add support for ext_shader_framebuffer_fetch 2018-04-16 11:32:35 +07:00
Logan McNaughton
2e227cef53 Rewrite N64 Depth Compare 2018-04-16 11:32:35 +07:00
Logan McNaughton
c01c0d5166 use gl_LastFragDepthARM and glTextureBarrier 2018-04-13 21:24:56 +07:00
Logan McNaughton
18e9a73eba Cache SpecialFeatures check 2018-04-07 11:30:33 +07:00
Logan McNaughton
b49ee1dd8b Fix GLESX clipping hack in GraphicsDrawer 2018-04-07 11:30:33 +07:00
Logan McNaughton
9c73fb27b1 Remove Image Texture requirement for some shaders 2018-04-07 11:30:33 +07:00
Logan McNaughton
af6460ff4f Require GL_NV_shader_noperspective_interpolation for GLES depth clamp emulation 2018-04-05 20:21:19 +07:00
Joe Mattiello
9497a9b868 Add iOS system ifdefs and gles includes 2018-03-31 10:54:20 +07:00
Joe Mattiello
ff904fc51e Add the iOS framebuffer binder from @braindx 2018-03-31 10:54:20 +07:00
hissingshark
d84e11e10f Added Vero4k build flags to detect libGLESv2.so path. 2018-03-31 01:18:53 +01:00
Logan McNaughton
ee906a217c Fix GLES2 shader storage support 2018-03-30 10:15:23 +07:00
Logan McNaughton
07ec815831 Only write to gl_FragDepth once 2018-03-29 12:50:16 +07:00
Sergey Lipskiy
81d79e3938 GLideNHQ refactor: use graphics::InternalColorFormatParam as type for color format variables. 2018-03-28 12:28:05 +07:00
Logan McNaughton
50998f2f33 Use graphics backend in GLideNHQ 2018-03-27 20:52:56 +07:00
Logan McNaughton
bdb0f7ca94 Emulate GL_DEPTH_CLAMP for GLES 2018-03-23 21:52:06 +07:00
Sergey Lipskiy
cbbc83ac96 Fix noise-based effects on texrects in "texrect in native res" mode.
Fixed GLideN64 3.0 Regression (Noise) #1740
2018-03-21 23:07:40 +07:00
Logan McNaughton
2fc1b5f462 Use glDrawRangeElements 2018-03-09 20:33:15 +07:00
Logan McNaughton
958758b37a Remove PixelWriteBuffer
And a few other small fixes
2018-03-09 20:32:56 +07:00
Logan McNaughton
a611105e6d Cache glTexParameter calls 2018-03-09 20:32:34 +07:00
Logan McNaughton
91ab96d514 Fix FB attachment caching when texture is deleted 2018-03-09 20:32:34 +07:00
Logan McNaughton
b81dd6a673 Keep track of FB attachments 2018-03-09 20:32:34 +07:00
Logan McNaughton
fefc4e63a8 Use short, not byte, for element index 2018-02-28 16:55:29 +07:00
Logan McNaughton
d467327349 Reduce some debug GL calls in production
Also only check extension support at init()
2018-02-27 20:30:19 +07:00
Francisco Zurita
667b3d28ee Make some Android checks only apply to PowerVR 2018-02-26 20:15:15 +07:00
Logan McNaughton
d2d0e9aafc Allow triple buffering in async copy mode 2018-02-23 13:43:30 +07:00
Sergey Lipskiy
8cb25b1fed Add support for blend modes, which can't be emulated with shader blender.
Add a hack for blend mode 0x0150 in Tony Hawk 2: Spiderman uses the same blend mode,
but has no problems with it.
2018-02-18 20:44:11 +07:00
Francisco Zurita
05295254b6 Fix slow down on Adreno 540 GPUs. 2017-12-21 00:17:27 -05:00
Francisco Zurita
d841854023 Fix texture filter when using GLSL ES. 2017-12-20 00:29:12 -05:00
Sergey Lipskiy
509ee7ed10 Code refactor: simplify texture fetching shader parts. 2017-12-15 21:14:25 +07:00
Sergey Lipskiy
4d59d3ef28 Texrect drawer tuning: rewrite check for test color
Text looks better in Quest64 and Paper Mario.
2017-12-15 12:38:25 +07:00
Sergey Lipskiy
fa102a65c9 Do not revert Y for rects. 2017-12-15 12:38:19 +07:00
Sergey Lipskiy
a89486f6bd Fix issue with plugin freeze when emulation ended while plugin is in full screen mode.
Fixed PJ64: End emulation in Full-screen mode is broken #1680
2017-12-15 12:38:16 +07:00
Sergey Lipskiy
4cb2e7d7e8 Minor cleanup for YUVCONVERT_TEX shader 2017-12-15 12:38:13 +07:00
Sergey Lipskiy
5604bb94fa Code refactor: CombinerProgram()::getKey() returns reference instead of object
to avoid copy of the key to temp object when combiner added to combiners map.
2017-12-15 12:38:10 +07:00
Sergey Lipskiy
6a72b09b1f Move texture fetching mode logic out of shader. 2017-12-15 12:38:03 +07:00
Gillou68310
cc3e1e6302 Add support for odroid 2017-12-14 17:45:21 +01:00
Sergey Lipskiy
05aaddd600 Fix use of prim depth in shaders.
Fixed Custom Robo graphic glitch in WIP Builds 3 #1678
2017-12-09 22:48:19 +07:00
Sergey Lipskiy
3241d49ee6 Code cleanup: use the same TEX_OFFSET macro for standard and 3point filtering.
OpenGL and GLES3+ shaders.
2017-12-02 12:45:43 +07:00
Sergey Lipskiy
6845116856 Fix bilinear filtering shader for GLES2. 2017-12-02 12:45:39 +07:00
Sergey Lipskiy
37cc010e85 Add special hack for monochrome effect in Zelda games.
Fixed OOT - major graphic glitches in cutscene #1673
2017-11-28 16:32:03 +07:00
Francisco Zurita
55f2c02446 Fix rare crash in opengl_BufferedDrawer.cpp 2017-11-27 10:27:26 +07:00
Francisco Zurita
e2614529c2 Fix check for using the BufferedDrawer 2017-11-21 09:34:54 -05:00
Sergey Lipskiy
38dc7ff25f Clear fences list in olorBufferReaderWithBufferStorage::_destroyBuffers()
Fixed memory leak on graphics context destroy.
2017-11-19 19:56:05 +07:00
Sergey Lipskiy
26623cec1f Code cleanup: fix issues in GLideN64 found by static code analyser. 2017-11-18 22:07:27 +07:00
Sten Appelt
9d735212f0 Rewrite glGetProcAddress for MacOsX 2017-11-18 15:35:38 +07:00
Sergey Lipskiy
5a037474a2 Code cleanup: fix compilation warnings. 2017-11-15 15:07:52 +07:00
Sergey Lipskiy
dcdf66dc0b Fix hardware lighting. It was broken when lighting method was rewritten in 6af6e2c17f
Hardware lighting is incompatible with new lighting method.
Model matrix may be different for different vartices, but only latest state of inverted light vectors are loaded to shader.
Thus I reverted calculations of data for hardware lighting.

Minor code cleanup.

Fixed: Zelda OOT, bad lighting with HW per pixel lighting #1652
2017-11-11 21:35:08 +07:00
Sergey Lipskiy
591eda82ba Set PrimDepth to gl_FragDepth when DepthSource set to Primitive.
This makes player's shadow solid in Tony Hawk's Pro Skater 2
2017-11-11 01:30:48 +07:00
Sergey Lipskiy
3c61198043 Hardcode blend mode, which is impossible to emulate with shaders.
Fixed Tony Hawk's Pro Skater 2 Shadow Glitch #1337
2017-11-11 01:01:49 +07:00
Sergey Lipskiy
a47d9d5840 Save hardware per pixel lighting enabled flag in combiners keys storage.
Use it to set hardware lighting support in GBI.

Fixed New shader cache breaks with hardware per pixel lighting enabled #1650
2017-11-08 17:11:14 +07:00
Sergey Lipskiy
7642758873 Fix shader compilation for combiners, wich use only T1.
Fixed main menu in Paper Mario.
2017-11-07 11:22:12 +07:00
Sergey Lipskiy
b4ad1832c4 Write siplified texture read shaders for COPY mode.
Up shaders storage version.

Fixed wrong use of YUV conversion in COPY mode.
2017-11-02 17:08:33 +07:00
Sergey Lipskiy
dcf8784dca Disable hardware lighting for ucodes with custom lighting methods.
Fixed #1542 Turok 2/Turok 3 Per Pixel Lighting Rainbow Weapons.
2017-10-31 17:42:48 +07:00
Sergey Lipskiy
adc2b547e8 Implement YUV-to-RGB color space conversion. See 12.5 of programming manual
Up shader storage version.

Fixed Killer Instinct Gold: Improper Projectile Effects. #1513
2017-10-31 13:27:34 +07:00
Sergey Lipskiy
365838eddc Fixed problem with combiners shaders generation:
Parts of shaders code created on start. Some parts depend on config options.
When config changed with GUI shaders updated but code parts not updated.
Thus new shaders do not correspond to current state of config.
2017-10-29 16:49:05 +07:00
Sergey Lipskiy
7d1d3da114 Put UTextureFilterMode uniform creation to the right place. 2017-10-29 15:10:53 +07:00
Sergey Lipskiy
c5c0fbeb6f Use combiners keys when ShaderProgramBinary is not supported and shaders storage con not be created. 2017-10-28 21:48:01 +07:00
Sergey Lipskiy
f6b0f3446b Fix compilation with gcc. 2017-10-27 10:08:22 +07:00
Sergey Lipskiy
7e4271d991 Display save/load progress for combiners shaders
Display "init noise texture" message. Progress is hard to display because noise textures generated in threads.
2017-10-26 00:37:26 +07:00
Sergey Lipskiy
aba3fefe63 Implement alternative methods of combiners shaders load.
Combiners muxes saved in separate text file.
When shader cache becames invalid, list of shaders muxes used to re-create combiners.
2017-10-26 00:27:52 +07:00
Sergey Lipskiy
35cc66bad4 Code cleanup:
* make RSPInfo::busy and RSPInfo::halt boolean
* remove RSPInfo::close
* rename RSPInfo::bLLE to RSPInfo::LLE
2017-10-24 15:44:37 +07:00
Sergey Lipskiy
977fddf3ea Correct condition for Zelda monochrome buffer.
Fixed Pokemon Puzzle League: missing graphics in game (regression) #1588
2017-10-11 15:06:32 +07:00
Francisco Zurita
762def7dae Fix issues reported by Valgrind 2017-10-09 23:51:16 -04:00
Conn O'Griofa
d8ac5a761c Raspberry Pi: fix vendor library names & add override
* Use new libbrcmEGL/libbrcmGLESv2 names
* Allow RPI autodetection override via -DMESA=On (for VC4 driver)
2017-10-07 08:26:31 +01:00
gizmo98
db18139ca5 Refine fullscreen toggle logic
-Toggle m_bFullscreen if _changeWindow is executed.
-Don’t allow _resizeWindow if m_bFullscreen is true.
-_resizeWindow returns false if fullscreen is enabled.
2017-10-06 14:07:06 +07:00
clobber
a3807827c0 Simplified and complete workaround for #1601
This properly worksaround the bug with Intel drivers on the Mac, which initially broke in parts of commits d4dbe7c094 and 231463e368
2017-10-01 14:05:25 +07:00
Sergey Lipskiy
e8b03cd599 Make workaround for #1601 Intel-specific.
Fixed Blending changes broke PowerVR devices #1608
2017-09-30 18:01:26 +07:00
Sergey Lipskiy
70c540b073 Rewrite fix for #1539 : keep in tile descriptor start address of frame buffer, not pointer on it.
Should be more safe.
2017-09-29 22:25:56 +07:00
clobber
3c8689d848 ShaderBlender: cast to ivec4 where needed. Fixes #1601
This works around a bug with Intel GPU's on macOS where colors can appear wrong.
2017-09-29 14:58:40 +07:00
Sergey Lipskiy
d404dbfceb Correct UBlendMode2Cycle::update()
Fixed World Driver Championship shadows are.....grey! #1596
2017-09-27 18:21:20 +07:00
Sergey Lipskiy
ee3f4a6962 Partially revert commit 81cc0854 Fix blending when CLR_ON_CVG flag is on.
It will not work without pixel covarage calculation.

Fixed Mario Tennis (USA) - missing character selection icons (regression) #1599
Fixed Android/potential PC regression too: Conker broken FB render/lighting chunks. #1597
2017-09-27 16:19:28 +07:00
Logan
c925b8dd54 Optimize 3point shader 2017-09-26 15:20:46 -06:00
Sergey Lipskiy
1266ced083 Code cleaup: remove unused MonochromeCombiner. 2017-09-24 18:51:02 +07:00
Sergey Lipskiy
81cc0854dc Fix blending when CLR_ON_CVG flag is on.
Remove hack for Pilot Wings.
2017-09-21 23:18:35 +07:00
Sergey Lipskiy
a70bc7411b Fix glError in screenshot functions. 2017-09-21 23:18:32 +07:00
Sergey Lipskiy
231463e368 Optimize blender shaders. Thanks to Logan McNaughton aka loganmc10 and standard-two-simplex for the new code. 2017-09-21 23:18:11 +07:00
Sergey Lipskiy
da2becd57e Fix ShaderBlender1::write method. Up ShaderStorage version.
Fixed #1553 Resetting once breaks rendering via transparency of many textures.
Thanks Logan McNaughton for finding the root of the problem.
2017-09-21 21:33:08 +07:00
Sergey Lipskiy
d4dbe7c094 Correct blending when FORCE_BL flag is off. Up shader storage version.
Fixed F-Zero X wrong borders #639
2017-09-21 21:33:08 +07:00
Sergey Lipskiy
47d718f287 Add F3DFLX2 ucode for F-Zero. Implement F3DFLX2 lighting method. 2017-09-21 21:33:08 +07:00
Francisco Zurita
16d1aa6761 Fix possible memory corruption when reading pixels for G_IM_SIZ_8b
buffers.

Also, improve variable naming.
2017-09-11 10:26:49 +07:00
Logan McNaughton
23642624d4 Enable IPO for Release build 2017-09-06 20:48:11 -06:00
Sergey Lipskiy
f95d819a47 Up shader storage version. 2017-08-11 12:23:39 +07:00
Sergey Lipskiy
089dd2df0e Fix fog for F3DSWRS 2017-08-11 12:23:39 +07:00
Sergey Lipskiy
3b9f16e8dd Fix regression with blending in A Bug's Life, #1488
Hack alert:
The problem blender is used in two cycles mode, but both cycles are the same:
c_in*a_in + c_mem * 1ma
I have no access to c_mem from shader. Therefore, I use c_in instead of c_mem in the first cycle.
Result of the second cycle will be blended with c_mem by GL blender, as usual.
This is pretty good approximation, no problems noticed.
2017-07-30 22:50:39 +07:00
Sergey Lipskiy
5691fcbc23 Implement F3DAM ucode.
Decoded by olivieryuyu

Fixed #97 hey you pikachu:hilarious texture bug
2017-07-17 23:08:26 +07:00
Sergey Lipskiy
d89e48df46 Add TextDrawer::setTextColor method. 2017-06-25 15:07:02 +07:00
Sergey Lipskiy
a6babb418f Rewrite monochrome effect for Zeldas.
Fixed #1505 OoT Ending Screen Freeze Effect Color Wrong
2017-06-19 21:44:40 +07:00
Francisco Zurita
ad48345ec0 Changes needed to build with Android NDK 15 2017-06-18 18:33:05 -04:00
Sergey Lipskiy
312a9a77f2 Insure that BufferedDrawer::m_vertices size is enough to take any amont of data. 2017-06-16 00:22:13 +07:00
Sergey Lipskiy
b4ce5fb842 Fix line width for BufferedDrawer::drawLine. 2017-05-28 22:11:27 +07:00
Francisco Zurita
2e1baf433c Added floating point support to ColorBufferReader
I consolidated a lot of code that was the same between implementations in
the process, so now the code is common.
2017-04-25 16:51:18 +07:00
Francisco Zurita
4a8ae7e1cf Use floating point frame buffer format for Adreno 500 series GPUs 2017-04-25 16:51:18 +07:00