91196788ebfix more screw-ups in unicode support. fixes#828
zeromus
2024-08-31 22:34:38 -0400
8f9c6892d5OpenGL Renderer: Fix an initialization issue with the clear image shader program when running the 3.2 Core Profile renderer for a driver that only supports OpenGL v3.2. (Regression from commit e2a25e2. Fixes #827.)
rogerman
2024-08-28 10:33:27 -0700
64132f765aOpenGL Renderer: Fix a bug where having Edge Mark enabled could cause fragments to disappear. (Regression from commit f910c61.)
rogerman
2024-08-22 19:26:39 -0700
00b8df1b00OpenGL Renderer: Add entry point for glClientWaitSync, fixing compiling on Windows. (Regression from commit f910c61.)
rogerman
2024-08-15 17:50:53 -0700
f910c6197cOpenGL Renderer: Add new rendering resource classes, and do some misc. refactoring. - Using the new OpenGLGeometryResource and OpenGLRenderStatesResource classes, the 3.2 Core Profile and ES renderers now use triple-buffering for all geometry rendering resources and framebuffer constants. - Delete the InitFinalRenderStates() method, which has been obsoleted over the years. Its functionality has been rolled into the InitExtensions() and _RenderGeometryLoopBegin() methods.
rogerman
2024-08-15 16:49:42 -0700
f84a804499OpenGL Renderer: Fix bug where clear images were Y-flipped. (Regression from commit 3db6d56.)
rogerman
2024-08-13 19:49:34 -0700
8197174d69OpenGL ES Renderer: Fix a bug where the final output framebuffer is Y-flipped. (Regression from commit 3db6d56.)
rogerman
2024-08-12 13:44:58 -0700
3db6d5676cOpenGL Renderer: Do some more code cleanup and tune-ups. - In the 3.2 Core Profile and ES renderers, synchronization of vertex info uploads now occurs at a more reasonable time. - Geometry rendering is now Y-flipped by default, eliminating the need to Y-flip the final output framebuffer under all conditions. - Legacy OpenGL no longer needs to perform any color conversion of the final output framebuffer if FBOs are supported. - Rename some functions and variables to better describe what things are doing now.
rogerman
2024-08-12 11:23:23 -0700
9bbfca527aRemove redundant and currently unused Makefile.
rogerman
2024-08-10 15:53:25 -0700
04f97d5755OpenGL ES Renderer: Fix a major performance bug on many ARM-based mobile devices with integrated GPUs.
rogerman
2024-08-10 15:06:30 -0700
ea648f7110OpenGL Renderer: Do some minor tune-ups. - Remove some methods in OpenGLRenderer_2_0 and OpenGLRenderer_2_1 that have negligible contribution to either performance or code simplicity. - OpenGLRenderer_1_2, OpenGLRenderer_2_0, and OpenGLRenderer_2_1 are now instantiated with their specific variant IDs. - Calls to malloc_alignedCacheLine() have been replaced with the more appropriate malloc_alignedPage(). - Do some misc. code cleanup.
rogerman
2024-08-10 13:48:13 -0700
c75c1ce2c3Linux Ports (All): Update Autotools and Meson scripts to add JIT support for ARM targets. - Also fixes build errors related to explicitly building SIMD files for colorspacehandler. Don't do it! The proper way is to simply include "colorspacehandler.cpp" alone and let the compiler's preprocessor macros determine which SIMD file to use.
rogerman
2024-08-09 12:55:13 -0700
9e872d48c0CLI port: Allow to map NDS keys to joystick buttons.
Bryan Hernández
2024-08-08 00:40:06 -0400
2e01c0a840Linux Ports (All): Update the Code::Blocks project file to add build targets for AArch64. Also do some other misc. updates. - Release builds now use -Ofast optimization instead of -O3. - Release builds no longer strip their symbols. This will be needed for profiling and debugging.
rogerman
2024-08-08 17:34:26 -0700
b799d94762Colorspace Handler: Fix compiling for strict NEON. - We could always use -flax-vector-conversions, but let's try to stay disciplined for now.
rogerman
2024-08-08 12:11:20 -0700
176e38ce2fOpenGL Renderer: Simplify the code by removing the references to multiple output shaders, since commit 0c7cb99 has obsoleted them.
rogerman
2024-08-07 12:20:35 -0700
c5ab8a6ef6OpenGL ES Renderer: Fix a bug where RGBA6665 color output would fail. (Regression from commit de9fc5a.) - Also update some comments.
rogerman
2024-08-06 23:48:54 -0700
de9fc5ab75OpenGL Renderer: Remove the additional FBOs that were introduced in commits 60385bd, 8b5ac56, and 3ef9271 in an attempt to fix rendering on old GPUs like the Intel HD 4000. (Fixes #820.)
rogerman
2024-08-06 21:54:39 -0700
d7dcc85d87GTK / GTK2 Ports: EGL contexts running legacy OpenGL no longer require the EGL_KHR_surfaceless_context extension.
rogerman
2024-08-03 11:14:55 -0700
79f3f94099GTK2 Port: Set the audio volume in the same way as the GTK port so that the audio volume is consistent between the two ports.
rogerman
2024-08-03 10:13:41 -0700
9aa2ddfc88Linux Port (GTK/GTK2): Remove the requirement for libGLX.so when requesting a GLX context since libGL.so is all we need here. - Also do some minor code cleanup in glx_3Demu.cpp
rogerman
2024-08-02 12:10:21 -0700
4427b863adLinux Port (GTK/GTK2): Fix compiling in glx_3Demu.cpp. - Also fix a typo in egl_3Demu.cpp
rogerman
2024-08-01 23:02:58 -0700
15f5b169ccVideo Filters: Improve performance of Deposterize and XBRZ CPU-based filters. (Based on PR #631.) - Special thanks to @m42a for the inspiration on this code!
rogerman
2024-08-01 21:07:24 -0700
be51e41c04Ugh, let's try fixing the last stubborn Meson build script...
rogerman
2024-08-01 18:00:54 -0700
46990f2d85Fix some issues with Meson build scripts. (Regression from commit ca566eb.)
rogerman
2024-08-01 17:51:12 -0700
ca566eb11bOpenGL Renderer: Finalize all renderer-client integration to "just work". - These changes now presume that standard OpenGL and OpenGL ES are mutually exclusive. We will NOT support running a standard OpenGL context and an OpenGL ES context in the same process. - Clients must explicitly request supporting the OpenGL 3D renderer in their build configuration. Build configurations must define ENABLE_OPENGL_STANDARD (replacing the HAVE_OPENGL macro) or ENABLE_OPENGL_ES. If neither macro is defined, then the OpenGL 3D renderer will be assumed unavailable. - Meson and Autotools now use better header/library checks for OpenGL functionality with their associated context type. - Add a new Code::Blocks project file that can make builds for CLI, GTK, and GTK2. - GTK and GTK2 ports now have the option to run a legacy OpenGL context, a 3.2 Core Profile context, or simply choosing the best context automatically like before. - GTK and GTK2 ports have GLX and EGL as new context types. OSMesa and SDL have been updated to the latest design pattern. - GTK and GTK2 ports can now be configured (via Meson or Autotools) to use a GLX, OSMesa, EGL, or SDL context. - OSMesa contexts are now marked as deprecated. I don't know of anyone who still uses them, and I've never been able to get it to work correctly for years. Now that we have GLX contexts for compatibility purposes, OSMesa contexts are now completely redundant. - Fix a bug with the GTK port where ancient GPUs without FBO support can still run framebuffers at custom sizes. - For POSIX ports, move all "avout" and context creation files to the "shared" directory for better file organization.
rogerman
2024-08-01 17:08:01 -0700
0a78fa2a2bOpenGL Renderer: Fix a few bugs here and there. - Fix a compiling bug for ES due to missing tokens. - Fix Fog and Edge Mark feature availability when running legacy OpenGL. (Regressions from commit 0c7cb99 and commit 8b5ac56.) - glDrawBuffer() now determines its own algorithm at runtime instead of at compile time. This change is being done to be consistent with all of the other Standard vs ES changes.
rogerman
2024-08-01 00:11:05 -0700
2f177d19a2Cocoa Port: Update OpenGL renderer integration code to reflect current design patterns.
rogerman
2024-07-26 14:56:36 -0700
4c90c2d9eeOpenGL ES Renderer: Finalize the last remaining bug fixes so that the ES renderer can work "out of the box". - Respect the draw buffers ordering rules that are unique to ES. - Report the actual OpenGL variant being requested when initializing the renderer. - Add oglrender_deinit() function pointer so that clients can properly handle the destruction of their associated context resources at the correct time. - Certain internal OpenGL info is now assigned at run time instead of at compile time. This change now allows any of the OpenGL renderers to run side-by-side.
rogerman
2024-07-26 11:10:50 -0700
d6532b9e91OpenGL ES Renderer: Fix TBO-based polygon state uploading.
rogerman
2024-07-24 15:28:56 -0700
d58c0e9331OpenGL Renderer: Oops! Fix a compiling issue introduced in commit e2a25e2.
rogerman
2024-07-23 21:39:07 -0700
e2a25e2412OpenGL Renderer: Fix various rendering bugs. - Fix a potential unaligned access crashing bug in ES when clear images are to be rendered. - Fix an ES bug where clear images would fail to render when MSAA is enabled. - Fix a legacy OpenGL bug where toon table colors were not ignoring their alpha bit, according to GBATEK.
rogerman
2024-07-23 21:28:15 -0700
f323dc464fWindows Port: Fix bug where the OpenGL 3D renderer would fail to initialize at program startup. (Regression from commit 76fe5f7. Fixes #815.)
rogerman
2024-07-22 22:47:29 -0700
12ed7dd054Colorspace Handler: Fix alpha detection logic in ColorspaceConvert5551To8888_*() and ColorspaceConvert5551To6665_*().
rogerman
2024-07-21 21:02:50 -0700
368cd49fb6OpenGL Renderer: Tighten up some code related to clear image.
rogerman
2024-07-20 22:54:44 -0700
3ef927100bOpenGL Renderer: Fix some longstanding graphical glitches related to running Edge Mark and Fog with MSAA. - These graphical glitches are resolved only when running 3.2 Core Profile with the GL_ARB_sample_shading extension, available on all modern GPUs. - Do some minor optimizations to the Edge Mark and Fog shaders. - Also fix an FBO attachment bug in legacy OpenGL that was introduced in commit 8b5ac56.
rogerman
2024-07-20 20:49:44 -0700
8b5ac56d66OpenGL Renderer: More FBO rework.
rogerman
2024-07-19 14:38:05 -0700
Merge branch 'TASEmulators:master' into master
Max Fedotov
2024-07-19 10:22:01 +0300
60385bd099OpenGL Renderer: Rework how the output framebuffers work. - The output framebuffers now bind their own FBOs rather than changing draw targets with glDrawBuffer(). - Rework the general FBO management. - Legacy OpenGL now outputs native RGBA color if FBOs are supported. This should give a minor performance increase on older GPUs. - The fixed-function pipeline can now flip the framebuffer on GPU. This greatly reduces the CPU usage when doing the final color conversion and gives a significant performance increase on ancient GPUs.
rogerman
2024-07-18 21:45:00 -0700
811e1de45eOpenGL Renderer: Oops! Roll back some internal test code that accidentally slipped into commit 0c7cb99.
rogerman
2024-07-18 12:46:11 -0700
3e650f2f73OpenGL Renderer: Add entry point for glBlendColor, fixing compiling on Windows. (Regression from commit 0c7cb99.)
rogerman
2024-07-18 12:26:53 -0700
0c7cb99d78OpenGL Renderer: Greatly simplify the fog rendering pass. - There is no more need to switch to the working texture as the destination for the fog output. This change will be essential for future commits. - The dual-source blending method has been obsoleted and removed. - FBOs are no longer required for the fog feature, easing requirements for ancient GPUs. - Ancient GPUs may see a small performance benefit due to shader simplification.
rogerman
2024-07-18 12:17:25 -0700
Merge branch 'TASEmulators:master' into master
Max Fedotov
2024-07-18 22:06:38 +0300
70fef83dedOpenGL Renderer: Fix bug when the screen wasn't being cleared properly when no polygons are being sent to the renderer. (Regression from commit 241ca96.)
rogerman
2024-07-16 16:15:47 -0700
ff9231bb34OpenGL Renderer: 16-bit texture data that is converted to 32-bit is now byte-swapped correctly on big endian systems.
rogerman
2024-07-15 23:09:53 -0700
ab1d37a44fColorspace Handler: Fix compiling on AltiVec systems. (Regression from commit 586aea5.)
rogerman
2024-07-15 23:07:24 -0700
cc0b3ed00dCocoa Port: Update the OpenGL blitter code to reflect the current code pattern in OGLRender.h. - Centralize all header includes into OGLDisplayOutput.h. - Update all extension versions of OpenGL functions/tokens that would be core in OpenGL v1.5.
rogerman
2024-07-15 16:52:43 -0700
80694cd966OpenGL ES Renderer: More ES fixes. - Change the remaining FBO attachments that I missed the last time to use RGBA8 internal format. - Fix picky ancient drivers that won't accept GL_RED as a texture internal format. It has been changed to GL_LUMINANCE. - Fix picky ES drivers that demand that the external format used in both glTexImage2D() and glTexSubImage2D() are exactly the same. - OpenGL ES doesn't support GL_UNSIGNED_SHORT_1_5_5_5_REV for texture data, and GL_UNSIGNED_SHORT_5_5_5_1 is incompatible with our data. So instead, all 16-bit data will be converted to 32-bit LE before uploading it via the textures, and such ES textures will now take GL_UNSIGNED_BYTE format. - Remove the #include for EGL/egl.h in OGLRender.h, since EGL shouldn't exist at this level of the code stack.
rogerman
2024-07-15 16:45:21 -0700
586aea5310Colorspace Handler: Add new functions for 16-bit to 18-bit and 32-bit color conversion, now respecting the 16-bit color's alpha bit. - ColorspaceConvert5551To8888() - ColorspaceConvert5551To6665() - ColorspaceConvertBuffer5551To8888() - ColorspaceConvertBuffer5551To6665() - Also rename the existing 16-bit color conversion functions to help further distinguish the functions from one another.
rogerman
2024-07-15 16:24:02 -0700
8e52190221GTK: add OpenGL ES support
thesource
2024-07-15 10:59:21 +0300
15a6e51739OpenGL Renderer: Add support for Fog, Edge Mark, and on-GPU framebuffer color conversion for ancient GPUs that have support for shaders and FBOs, but lack support for GL_EXT_framebuffer_blit.
rogerman
2024-07-14 19:38:29 -0700
241ca96cf1OpenGL Renderer: Fix issues that would throw a GL error. - glTexParameteri() with GL_TEXTURE_2D_MULTISAMPLE throws INVALID_ENUM when trying to assign a sampler-related state, so these calls have been removed. - glMapBufferRange() throws GL_INVALID_OPERATION if the buffer size is 0, so check for this condition first.
rogerman
2024-07-13 10:43:04 -0700
aaf88d9f14OpenGL ES Renderer: More ES tune-ups. - Any ES-specific error messages are now reported as "OpenGL ES" instead of "OpenGL". - Explicitly declare the internal format of all textures and RBOs used as FBO attachments as "GL_RGBA8" instead of the generic "GL_RGBA". This may fix some extremely picky ES drivers that would throw GL_INVALID_ENUM if we don't use a sized internal format. - Hard code the read pixels format as GL_RGBA and the read data type as GL_UNSIGNED_BYTE. It is meaningless to rely on GL_IMPLEMENTATION_COLOR_READ_FORMAT and GL_IMPLEMENTATION_COLOR_READ_TYPE since we are reading from our own FBOs that are hard coded to GL_RGBA8 format. - Require that OpenGL ES contexts support the GL_OES_surfaceless_context extension, since we are doing offscreen rendering strictly on FBOs only. This extension has been around for a very long time, and so this serves as a kind of compatibility check.
rogerman
2024-07-12 15:41:09 -0700
d480f95d79Cocoa Port: Fix yet another crash-on-exit bug that could happen when running on an older system.
rogerman
2024-07-12 12:00:49 -0700
b0aa98ebf2Merge branch 'master' into safek_master
SimonAfek
2024-07-11 13:59:20 +0200
00dd6fb97aOpenGL ES Renderer: Use the proper ES extension header, and also avoid double #defining some of the tokens.
rogerman
2024-07-10 21:53:49 -0700
bb3011c262OpenGL Renderer: Return to a more traditional method of doing texture reads in shaders, effectively removing dependent texture reads where appropriate. - This change won't affect standard OpenGL on a desktop PC, but may improve performance on lesser GPUs trying to run OpenGL ES.
rogerman
2024-07-10 16:01:13 -0700
86a29d768aOpenGL ES Renderer: Do some minor changes/fixes. - Fix a bug where _isShaderFixedLocationSupported wasn't being set to true, causing shaders to fail. - OpenGL version checks now account for non-compliant ES drivers that contain text before the version number. - Manually set the default read/draw buffers for all FBOs upon creation. We shouldn't need to do this, since they should always be set later, but just in case... - Add missing GL_BGRA macro. - Tidy up the OpenGL naming in some error strings.
rogerman
2024-07-10 13:59:02 -0700
3a6f2f6dc5OpenGL ES Renderer: Add a new OpenGL ES 3.0 renderer.
rogerman
2024-07-09 23:00:27 -0700
0e88f9aa94OpenGL Renderer: Final changes for OpenGL ES compatibility.
rogerman
2024-07-09 22:03:33 -0700
384854f6e7OpenGL Renderer: More updates to the 3.2 Core Profile renderer to be more cross-compatible with OpenGL ES 3.0. - Add support for fixed locations in shaders for OpenGL 3.3 and later. - The fog density table texture is now a 2D texture instead of a 1D texture. - Fix a memory leak where the polygon state texture wasn't being deleted upon the destruction of the OpenGLRenderer object.
rogerman
2024-07-09 01:18:50 -0700
7dbece1082OpenGL: Do some minor changes to the 3.2 Core Profile renderer to make it more cross-compatible with OpenGL ES 3.0. - PBO handling now works via glMapBufferRange() instead of glMapBuffer(). - Polygon states can now be uploaded using plain integer textures. 64k UBOs and TBOs are no longer required.
rogerman
2024-07-06 16:20:53 -0700
09090e93f9GFX3D: Change POLYLIST_SIZE to 16384 to ensure proper memory alignment with buffers based on CLIPPED_POLYLIST_SIZE and VERTLIST_SIZE.
rogerman
2024-07-06 13:58:05 -0700
c962c550e7OpenGL: Handle legacy functions and tokens more gracefully for OpenGL variants that may not have them.
rogerman
2024-07-05 18:13:43 -0700
76fe5f758cOpenGL: More changes in preparation of OpenGL ES. - Slightly change the names of attachment defines so that they can be distinguished from the native OpenGL attachment defines. - The minimum version driver check now accounts for OpenGL ES. - OpenGLRendererCreate() can now handle any possible OpenGL variant, as declared in the OpenGLVariantID enum. - Framebuffer read backs may now assigned their format and data type. (Legacy OpenGL assigns the format as GL_BGRA, while 3.2 Core Profile assigns the format as GL_RGBA.)
rogerman
2024-07-03 16:55:47 -0700
3ec0b0c2e1OpenGL: Continue preparation for adding OpenGL ES. (Related to commit 086980d.)
rogerman
2024-07-03 13:01:17 -0700
fc6ff8edbdGPU: Fix a bug on big-endian systems where setting the backdrop color could cause a crash.
rogerman
2024-07-02 01:35:10 -0700
fe0ae83c40Cocoa Port: Fix a longstanding, yet rare, crash that may occur when quitting the app.
rogerman
2024-07-02 00:16:46 -0700
d4163a1893OpenGL: Fix building on Windows and Linux. (Regression from commit 086980d.)
rogerman
2024-07-01 16:26:46 -0700
086980deafOpenGL: Start reorganizing stuff in preparation for adding new OpenGL variants, such as OpenGL ES. - All platform-specific header includes are now centralized in OGLRender.h. - Remove all ARB and EXT versions of legacy functions (everything pre 3.0). Legacy functions now only reference their core versions. - Do a some minor code cleanup.
rogerman
2024-07-01 16:19:05 -0700
76bd1a5e35Change line-ending style in OGLRender.h from Windows-style CRLF to Unix-style LF.
rogerman
2024-06-29 14:50:47 -0700
6309a9c6a7libretro: So apparently, _XOPEN_SOURCE has to be at the top of the file. Hopefully this makes both GCC14 users and Mac users happy. (Related to commit 779606e. Based on PR #793.)
rogerman
2024-06-07 17:16:53 -0700
779606ec2flibretro: Fix building on Mach-based operating systems, otherwise known as Mac OS X and modern macOS (regression from commit 90d0abd). Based on PR #793.
rogerman
2024-06-07 16:33:13 -0700