Files
godot-angle-static/scripts/code_generation_hashes/OpenGL_dispatch_table.json
Brian Ho 4c8ab49da1 Use MESA variant of glFramebufferParameteri if possible
The GL_MESA_framebuffer_flip_y extension lets the client flip reads
and writes to the a fb via glFramebufferParameteri.
glFramebufferParameteri, however, is only available on GLES 3.1+, but
the flip y extension spec states that GLES 3.0 implementations can
still implement this extension by providing
glFramebufferParameteriMESA (see "Revision History" [1]).

Some old ChromeOS Flex devices only support GLES 3.0, but still
expose this extension. Currently, ANGLE segfaults when trying to
update the FLIP_Y param [2] (e.g. when we create a WebGL canvas) on
these devices because framebufferParameteri is only initialized on
GLES 3.1+ [3].

This CL fixes the crash by falling back to the MESA variant of
framebufferParameteri when framebufferParameteri is unavailable.

[1]:https://registry.khronos.org/OpenGL/extensions/MESA/MESA_framebuffer_flip_y.txt
[2]:https://source.chromium.org/chromium/chromium/src/+/main:third_party/angle/src/libANGLE/renderer/gl/FramebufferGL.cpp;l=1330;drc=bf5e9dbc89e2dddb9c36200396139e938467f58e
[3]:https://source.chromium.org/chromium/chromium/src/+/refs/heads/main:third_party/angle/src/libANGLE/renderer/gl/DispatchTableGL_autogen.cpp;l=2552;drc=837cc12de25a288edf3ac222f7265c9936e69552

Bug: b/264681962
Change-Id: I079937bcd54b580b79d875f57c2b80ae796f2d83
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4425929
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Brian Ho <hob@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
2023-04-18 14:56:47 +00:00

18 lines
735 B
JSON

{
"src/libANGLE/renderer/angle_format.py":
"601bfb757e052c50ac8f4cb4e0b58eb5",
"src/libANGLE/renderer/gl/DispatchTableGL_autogen.cpp":
"26e64fe13d7248c4ae04d6c8f3ac5890",
"src/libANGLE/renderer/gl/DispatchTableGL_autogen.h":
"94e376d7f3b7e2ef6587284f825dfe39",
"src/libANGLE/renderer/gl/generate_gl_dispatch_table.py":
"2fb7f3906b4966b192c629228bc3e961",
"src/libANGLE/renderer/gl/gl_bindings_data.json":
"1c8d597d390eff780a14c703105304c4",
"src/libANGLE/renderer/gl/null_functions.cpp":
"38cd5858fa583e39bd76744ff532db49",
"src/libANGLE/renderer/gl/null_functions.h":
"dff00d65990f16e1f77a73d12085a408",
"third_party/OpenGL-Registry/src/xml/gl.xml":
"49f0afe5cac23951c74420e457b0cb23"
}