Vladimír Vondruš
19787a4282
GL: improve test coverage of the Attribute classes a bit.
6 years ago
Vladimír Vondruš
b7da1323c8
Minor cleanup.
6 years ago
Vladimír Vondruš
de9c289328
Adapted all code and doc snippets to GL library changes.
6 years ago
Vladimír Vondruš
32d49db402
GL: mesh.draw(shader) -> shader.draw(mesh).
...
As usual, the old APIs are still present, but marked as deprecated.
Existing code is not updated yet to ensure I didn't break anything with
this.
This way it's much more intuitive and makes the code shorter and nicer
in many cases. Shaders are now also able to hide irrelevant
draw/dispatch APIs to avoid accidents.
6 years ago
Vladimír Vondruš
d096aa68cc
Add MeshPrimitive::Instances, Faces and Edges.
...
To support meshes that are not so GPU-friendly. And also meshlets at a
later point.
6 years ago
Vladimír Vondruš
c9634508e3
Enlarge MeshPrimitive to four bytes, allow wrapping impl-specific values.
...
And also handle them specially in GL::meshPrimitive() and
Vk::vkPrimitiveTopology().
6 years ago
Vladimír Vondruš
7d44bccd9b
Provide reliable mapping of VertexFormat to GL and Vulkan.
...
GL was missing a check whether given format is available on a target
(for example double types are not on ES), and for Vulkan we need something
similar to pixel format mapping as well.
6 years ago
Vladimír Vondruš
13c071a1aa
GL: allow to construct DynamicAttribute from VertexFormat.
6 years ago
Vladimír Vondruš
d46061b285
Make MeshPrimitive and MeshIndexType enums only 8bit.
...
Otherwise they take up too much space.
6 years ago
Vladimír Vondruš
7fd92c10dd
Reserve zero MeshPrimitive and MeshIndexType for invalid values.
...
Better for checking accidents, as picking a wrong primitive / index type
can lead to *serious* rendering issues. Similarly to a change done to
(Compressed)PixelFormat in 2019.10.
6 years ago
Vladimír Vondruš
3f57130547
GL, Vk: future-proof mesh primitive and index mapping tables.
...
The test now explicitly goes through all generic names and checks that
the mapping doesn't blow up.
6 years ago
Vladimír Vondruš
b5d9e1cfb7
GL: improve a test.
...
It's tested everywhere but here so I guess it was some accidental
omission.
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š
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š
d955908a38
GL: allow creating a Buffer and directly filling it with data.
6 years ago
Vladimír Vondruš
6aaf783867
GL: reduce amount of included stuff in a test.
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š
0e1779ad61
GL: a new case that the new Apple BufferTexture workaround doesn't fix.
...
Sigh.
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š
61af7672d1
Test: adapted for the upcoming asserting CORRADE_GRACEFUL_ASSERT.
6 years ago
Vladimír Vondruš
50ac6d1a13
Test: fix false sense of security in pixel/mesh enum mapping tests.
...
The stripped-down versions didn't actually test for correct order
because there was no external API result to check against expected
output. That's fixed now, plus clarified some comments and removed
copypasted nonsense.
6 years ago
Vladimír Vondruš
b3759b6a98
GL: ensure gl_PointCoord works correctly also on compatibility profile.
7 years ago
Vladimír Vondruš
26accc7ec1
GL: AMD on Windows is also useless for framebufer format queries :/
7 years ago
Vladimír Vondruš
24f7d45364
Implement globals shared across DLLs on Windows.
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š
f2ba5602a4
GL: Intel Windows drivers 26 are less shitty w/ double attributes.
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š
eef1981b43
GL: added hasTextureFormat() and textureFormat() helpers.
7 years ago
Vladimír Vondruš
90c727c025
GL: test for ARB_gpu_shader_fp64 in tests that need it.
7 years ago
Vladimír Vondruš
c6c8dcb456
GL: make DynamicAttribute constructible directly from an Attribute.
...
Otherwise trying to mirror all the properties is quite error-prone.
7 years ago
Vladimír Vondruš
b2494416f4
GL: debug output for DynamicAttribute enums.
...
Forgotten, apparently.
7 years ago
Vladimír Vondruš
9b21db0737
GL: don't expose half float attributes on WebGL 1.
...
They weren't in the docs but in the internals. That's wrong.
7 years ago
Vladimír Vondruš
539f3f6066
GL: we can use PVRTC to test this code path on desktop.
7 years ago
Vladimír Vondruš
71a9f1bbbf
Reserve zero [Compressed]PixelFormat for an invalid value.
...
Catches accidents better -- just look at the diff. Might catch accidents
in your code now as well, so beware!
7 years ago
Vladimír Vondruš
e52c9e8d9e
Export globals and make them weak on static builds so they work across SOs.
...
Well, except on Windows -- not yet. Added an XFAIL for that.
7 years ago
Vladimír Vondruš
59aade762a
Audio, GL: add tests for global state shared across libraries.
...
Both currently fail on static builds.
7 years ago
Vladimír Vondruš
692cb4e173
GL: test setting an empty buffer to BufferTexture and filling it after.
...
The driver should recalculate the texture size after. This test fails when
ARB_DSA is not present as the underlying GL buffer is not created yet at
that point.
7 years ago
Vladimír Vondruš
dbc029e18e
GL: added BufferTexture::size().
...
Why the heck was it not here? Did I fear GL errors too much?
7 years ago
Vladimír Vondruš
87a446c7ba
GL: recognizing {EXT,ANGLE}_texture_compression_dxt{1,3,5} extensions.
...
This makes it possible to test S3TC code paths on SwiftShader as well.
7 years ago
Vladimír Vondruš
6e97039b8d
GL: don't include MAGNUM_shader_vertex_id on ES2 builds.
...
It makes one think such feature *could* be supported there, while it
couldn't.
7 years ago
Vladimír Vondruš
742aec665d
GL: harden extension list tests.
...
This uncovers a few important issues, yay!
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š
1e761d5701
GL: minor cleanup.
7 years ago
Vladimír Vondruš
619b4a3cb7
Be strict for missing values in pixel format switches.
7 years ago
Vladimír Vondruš
5a2547dd40
GL: clarify use of sRGB formats on ES.
7 years ago
Vladimír Vondruš
7d9ceb8832
Added ETC2 and EAC compressed pixel formats to the generic enum.
7 years ago
Vladimír Vondruš
acf06eb6d8
GL: don't implicitly enable debug output in OpenGLTester.
...
It's just too spammy and we have a nice opt-in way now, so direct users to
use that instead.
7 years ago
Vladimír Vondruš
9e03dd077a
GL: fix test asserts with the recently-deprecated nullptr ImageView.
7 years ago