Vladimír Vondruš
d0574b83ed
GL: advertise the "intel-windows-chatty-shader-compiler" workaround.
...
This was done silently until now and I think such platform-specific code
should be always exposed as a disableable workaround. Moreover, I need a
similar thing for ANGLE, so this comes handy.
5 years ago
Vladimír Vondruš
acdbcc2ef4
GL: advertise WEBGL_multi_draw only on Emscripten 2.0.0 and up.
5 years ago
Vladimír Vondruš
63f55a37b1
GL: implement ANGLE_multi_draw and WEBGL_multi_draw support.
5 years ago
Vladimír Vondruš
437b3d1556
GL: don't check for Windows-only workarounds everywhere.
...
Apparently nobody tried to run AMDGPU PRO drivers on Linux until now.
Sorry.
5 years ago
Vladimír Vondruš
79c3519045
Vk: add driver workaround scaffolding and the first one for SwiftShader.
...
Yay? It's funny, what produces correct result causes validation errors.
I suppose this will be very similar for all other workarounds.
5 years ago
Vladimír Vondruš
3d136503d8
Updated copyright year.
5 years ago
erikwijmans
015985016c
Add a nv-egl-crashy-query-device-attrib workaround.
5 years ago
Vladimír Vondruš
75d238f50b
GL: implemented ARB_buffer_storage.
6 years ago
Vladimír Vondruš
083ecf72b8
GL: implement EXT_texture_norm16 ES and WebGL extension.
6 years ago
Vladimír Vondruš
6feb5a4cab
GL: fix compilation on macOS + ANGLE.
6 years ago
Vladimír Vondruš
c4e41d28f1
GL: one more iteration on the Apple buffer texture workaround.
...
This broke DSA-less contexts with ARB_multi_bind present.
6 years ago
Vladimír Vondruš
36f51e3116
GL: finalize the apple-buffer-texture-unbind-on-buffer-modify workaround.
...
Followup to 24cc971b1f , covering the
remaining case.
6 years ago
Vladimír Vondruš
5f1fd752fa
GL: no need to have those in a std::vector<std::string>.
...
Allocations are bad. Needless allocations are worse. Needless
allocations forced on library load are the worst.
6 years ago
Vladimír Vondruš
19e0e96d74
Updated copyright year.
6 years ago
Vladimír Vondruš
d366e0e7a0
GL: exposed clip / cull distance APIs.
6 years ago
Vladimír Vondruš
0cd72b1883
GL: give up and disable ARB_explicit_uniform_location on Intel Windows.
...
SIGH FFS.
6 years ago
Vladimír Vondruš
5c10d6eb1e
GL: implemented ARB_pipeline_statistics_query from GL 4.6.
...
Need this for the upcoming FrameProfiler.
6 years ago
Vladimír Vondruš
d3f2235759
Adapted to Corrade changes.
6 years ago
Vladimír Vondruš
a119ee2bb2
GL: fix compilation with ANGLE on macOS.
...
This assumed that non-iOS Apple platform is always desktop GL. Wrong.
6 years ago
Vladimír Vondruš
dd07145fa2
GL: add a GL::AbstractShaderProgram::maxGeometryOutputVertices() query.
6 years ago
Vladimír Vondruš
4f0170ace4
GL: taking just an init list in MeshView::draw() was a stupid idea.
...
With just that, it wouldn't be possible to draw a runtime-dependent
amount of MeshViews (for example when culling them).
6 years ago
Vladimír Vondruš
946c3cdac9
GL: rename PixelType::HalfFloat and Attribute::DataType::HalfFloat to Half.
...
For consistency with the Half type we use elsewhere. The old enums are
still available, but deprecated and scheduled for removal.
6 years ago
Vladimír Vondruš
241cde706f
GL: new Mesh::maxVertexAttributeStride() query.
...
Good thing I checked this -- based on WebGL I was under assumption that
all GPUs have it just 256, but that was really just WebGL limitation.
Also ugh why this query wasn't there since the 90's?
6 years ago
Vladimír Vondruš
2562ca447c
GL: fix build on 32-bit Windows.
...
Now that the CI checks this I feel much safer.
6 years ago
Vladimír Vondruš
cc401b2b3c
GL: implemented missing Renderer::setPatch*() for tessellation shaders.
...
The last bits!
6 years ago
Vladimír Vondruš
0e50f0feea
GL: implement {EXT,ARB}_draw_buffers{2,_blend,_indexed}.
...
I also figured out a new, faster & less verbose way to handle multiple
code paths in some cases -- why didn't I think of that earlier?
6 years ago
Vladimír Vondruš
24cc971b1f
GL: reworked apple-buffer-texture-unbind-on-buffer-modify workaround.
...
Much smaller, nicer and more robust.
6 years ago
Vladimír Vondruš
e97b04f66d
GL: new apple-buffer-texture-detach-on-data-modify workaround.
6 years ago
Vladimír Vondruš
86dbd86e74
GL: added BufferTexture::resetBuffer().
6 years ago
Vladimír Vondruš
34261840bc
GL: expand ARB_DSA blacklisting on Intel Windows drivers a bit further.
...
This should finally fix all remaining Intel Windows driver issues.
Hopefully. Or at least until the next major driver update.
6 years ago
Vladimír Vondruš
a29cb46549
GL: give up and disable DSA for everything buffer-related on Intel/Windows.
...
Sad.
7 years ago
Vladimír Vondruš
507c5bf739
GL: remove the nv-egl-forward-compatible-context-unhappy workaround.
...
This was my bug, as requesting a forward-compatible context without
saying *what* version it should be forward compatible to makes no sense.
A followup to 73baab69ce .
7 years ago
Vladimír Vondruš
b3759b6a98
GL: ensure gl_PointCoord works correctly also on compatibility profile.
7 years ago
Vladimír Vondruš
3629af231b
GL: new amd-windows-broken-dsa-cubemap-copy workaround.
7 years ago
Vladimír Vondruš
9fa87652e6
GL: new amd-windows-dsa-createquery-except-xfb-overflow workaround.
7 years ago
Vladimír Vondruš
ca326fdb18
GL: pile on more workarounds for CubeMapTexture DSA code paths.
...
Ugh why this has to be SO TERRIBLE. I'm starting to have extremely low
expectations for similar parts of Vulkan drivers by the same vendors.
7 years ago
Vladimír Vondruš
60c18f93a1
GL: implement time queries for WebGL 2, and workarounds, and ...
...
There's a new firefox-fake-disjoint-timer-query-webgl2 workaround and a
half-page of text listing various caveats and issues you might run into.
Also exposing them in the OpenGLTester (although quite shitty at this
point).
7 years ago
Vladimír Vondruš
65b589f765
New explicit-uniform-location-is-less-explicit-than-you-hoped workaround.
...
Intel drivers on Windows. Surprisingly unsurprising.
7 years ago
Vladimír Vondruš
eef1981b43
GL: added hasTextureFormat() and textureFormat() helpers.
7 years ago
Vladimír Vondruš
d9cef2feea
Add HDR ASTC pixel formats.
...
Both Vulkan and Metal have separate enums for these, GL is the only odd
one out.
7 years ago
Vladimír Vondruš
893d5d38bc
ASTC: the pain never ends (3D formats).
...
GL has an extension, but only for ES, not on desktop. Vulkan has
nothing yet (due to there being just ARM that implements it, no other
vendor), except those being listed in a KTX format specification.
7 years ago
Vladimír Vondruš
40b8815b9d
Added sRGB formats to PixelFormats + R and RG sRGB GL texture formats.
...
The extension support is a mess, as usual. This time the ES flavor
supports something that desktop doesn't and WebGL lack those altogether.
Yay.
7 years ago
Vladimír Vondruš
8e57060f39
Support for PVRTC compressed pixel format.
7 years ago
Vladimír Vondruš
2b9772d86a
Added generic ASTC formats and the corresponding WebGL extensions.
7 years ago
Vladimír Vondruš
7cb0c4d57d
Added BC4, BC5, BC6H and BC7 compression formats.
...
Those are now also available under WebGL 1/2 and OpenGL ES 3.O (strangely
not OpenGL ES 2.0) under EXT_texture_compression_{rgtc,bptc}. The GL names
are extra weird-ass now that all other APIs use the BC names.
7 years ago
Vladimír Vondruš
02538d566f
Added sRGB variants of BC1/BC2/BC3 compression formats.
7 years ago
Vladimír Vondruš
7d9ceb8832
Added ETC2 and EAC compressed pixel formats to the generic enum.
7 years ago
Vladimír Vondruš
4e218d3f24
Platform: new nv-egl-forward-compatible-context-unhappy workaround.
...
SIGH. WHY CAN'T WE HAVE NICE THINGS.
7 years ago
Vladimír Vondruš
67bdc1bbd4
GL: make the ApiTrace viewport workaround no longer silent.
7 years ago
Vladimír Vondruš
b77651cf93
GL: remove Buffer::set[Sub]Data() taking std::array / std::vector.
...
Instead make use of the ArrayView STL compatibility. To avoid breaking
almost all existing code the Corrade/Containers/ArrayViewStl.h header is
included implicitly when MAGNUM_BUILD_DEPRECATED is defined, but this
will get removed in some future release to speed up the compilation.
7 years ago