]>
git.tdb.fi Git - libs/gl.git/log
Mikko Rasa [Mon, 3 Apr 2023 13:15:31 +0000 (16:15 +0300)]
Reset the default pipeline state when rendering ends
This avoids invalid accesses to resources which get destroyed before
the next frame, particularly with the OpenGL backend.
Mikko Rasa [Mon, 3 Apr 2023 13:13:52 +0000 (16:13 +0300)]
Resolve blocks after applying constant condition elimination
If the body of the conditional scope had any nested blocks, their parent
pointers need to be updated.
Mikko Rasa [Thu, 5 Jan 2023 18:47:48 +0000 (20:47 +0200)]
Remove redundant destructor declarations
Destructors are implicitly noexcept in C++11.
Mikko Rasa [Wed, 4 Jan 2023 22:36:12 +0000 (00:36 +0200)]
Decorate things which constitute the public API of the library
Mikko Rasa [Wed, 4 Jan 2023 22:10:19 +0000 (00:10 +0200)]
Adjustments due to changes in Variant
Retrieving an object from a collection now requires its type to be fully
defined.
Mikko Rasa [Tue, 11 Oct 2022 08:50:25 +0000 (11:50 +0300)]
Add debug names to some things which didn't have them
Mikko Rasa [Tue, 11 Oct 2022 08:49:03 +0000 (11:49 +0300)]
Fix use of incorrect buffer in Mesh
Besides crashing the program in specific conditions this was causing
index buffers to sometimes lack a debug name.
Mikko Rasa [Tue, 11 Oct 2022 08:48:49 +0000 (11:48 +0300)]
Add SplatMaterial to Resources
Mikko Rasa [Tue, 11 Oct 2022 08:36:12 +0000 (11:36 +0300)]
Improve consistency of debug names
Hierarchies are now always denoted with a colon. Square brackets are
used to add indexing-like details to child objects.
Mikko Rasa [Tue, 11 Oct 2022 06:48:56 +0000 (09:48 +0300)]
Add asset credits for forest pond
Mikko Rasa [Mon, 10 Oct 2022 13:23:19 +0000 (16:23 +0300)]
Don't try to refresh a non-existent vertex setup
Compute pipelines don't use one
Mikko Rasa [Mon, 10 Oct 2022 11:49:11 +0000 (14:49 +0300)]
Handle depth range conversion in geometry and tessellation shaders
Clip coordinates are taken from the last stage to deal with vertex
positions, so always converting in the vertex shader is not appropriate.
A geometry shader needs the conversion before every EmitVertex call.
Mikko Rasa [Mon, 10 Oct 2022 11:47:41 +0000 (14:47 +0300)]
Refactor statement creation in DepthRangeConverter into a function
Mikko Rasa [Mon, 10 Oct 2022 09:25:13 +0000 (12:25 +0300)]
Ensure that render targets are writable when clearing
Mikko Rasa [Mon, 10 Oct 2022 07:27:37 +0000 (10:27 +0300)]
Add a falling raindrops effect to forest pond
Mikko Rasa [Mon, 10 Oct 2022 07:23:46 +0000 (10:23 +0300)]
Disable depth writes for blended rendering steps
Mikko Rasa [Sun, 9 Oct 2022 21:56:05 +0000 (00:56 +0300)]
Enable advanced rendering options for the forest pond scene
Mikko Rasa [Sun, 9 Oct 2022 21:53:14 +0000 (00:53 +0300)]
Add a property to always export a blended step for a sequence
Mikko Rasa [Sun, 9 Oct 2022 14:21:12 +0000 (17:21 +0300)]
Adjust terrain tints in the forest pond scene
The moss texture was overly bright. Re-export also corrected camera
parameters after recent fixes.
Mikko Rasa [Sun, 9 Oct 2022 14:02:28 +0000 (17:02 +0300)]
Access vector components in Blender by name, not index
Mikko Rasa [Sun, 9 Oct 2022 13:55:43 +0000 (16:55 +0300)]
Correctly export camera up direction
Mikko Rasa [Sun, 9 Oct 2022 13:34:48 +0000 (16:34 +0300)]
Account for render resolution when exporting camera field of view
This is a big of a kludge since in theory a camera could be used in
multiple scenes, but likely to work fine in practice.
Mikko Rasa [Sun, 9 Oct 2022 13:22:18 +0000 (16:22 +0300)]
Add reflection and refaction to the water in forest pond
Mikko Rasa [Sun, 9 Oct 2022 09:05:50 +0000 (12:05 +0300)]
Add shader functions to get more exact environment samples
The environment map depth buffer is now stored in a cube texture and
passed to the shader so it's possible to raymarch through it.
Mikko Rasa [Fri, 7 Oct 2022 18:32:43 +0000 (21:32 +0300)]
Pass frame number to TransferQueue from the outside
It can't reliably track it by itself since transfers may be dispatched
multiple times per frame.
Mikko Rasa [Fri, 7 Oct 2022 18:22:20 +0000 (21:22 +0300)]
Rename frame_index in Renderer to frame_number
It's a free-running counter, not used directly as an index.
Mikko Rasa [Thu, 6 Oct 2022 11:09:30 +0000 (14:09 +0300)]
Check the flat qualifier from the correct member
Mikko Rasa [Thu, 6 Oct 2022 10:48:26 +0000 (13:48 +0300)]
Add an internal error for invalid equality comparison in SPIR-V
Mikko Rasa [Thu, 6 Oct 2022 10:37:54 +0000 (13:37 +0300)]
Use a splat material for the terrain in forest pond
Mikko Rasa [Thu, 6 Oct 2022 10:31:08 +0000 (13:31 +0300)]
Rename VulkanFramebuffer::prepare_image_layouts to synchronize_resources
For consistency with PipelineState.
Mikko Rasa [Thu, 6 Oct 2022 10:19:06 +0000 (13:19 +0300)]
Don't apply primitive restart to list primitives
Mikko Rasa [Thu, 6 Oct 2022 10:15:57 +0000 (13:15 +0300)]
Synchronize sampled images in addition to storage images
The same image may alternate between sampled and storage for successive
compute dispatches, and different layouts are needed for each usage.
Mikko Rasa [Thu, 6 Oct 2022 09:50:07 +0000 (12:50 +0300)]
Shader fixes in the forest pond demo
Mikko Rasa [Wed, 5 Oct 2022 11:35:04 +0000 (14:35 +0300)]
Set a default value for the tint property in PbrMaterial
Mikko Rasa [Tue, 4 Oct 2022 22:13:24 +0000 (01:13 +0300)]
Support exporting splat materials from Blender
Mikko Rasa [Tue, 4 Oct 2022 22:07:15 +0000 (01:07 +0300)]
Implement a splat material type
Currently it can't hold very many sub-materials because of limitations
of ProgramData.
Mikko Rasa [Tue, 4 Oct 2022 21:34:03 +0000 (00:34 +0300)]
Rearrange some things in the shader library
Lighting parameters and queries are now in their own module. The Cook-
Torrance BRDF has been separated from the PBR material so it's easier to
use elsewhere.
Mikko Rasa [Tue, 4 Oct 2022 21:15:18 +0000 (00:15 +0300)]
Change the vertex group attribute to uvec4
The exporter writes it as UBYTE, which is not compatible with a signed
integer attribute.
Mikko Rasa [Tue, 4 Oct 2022 21:11:58 +0000 (00:11 +0300)]
Fix some errors in the Phong shader
Mikko Rasa [Mon, 3 Oct 2022 20:44:46 +0000 (23:44 +0300)]
Refactor handling some material parameters in cooktorrance.glsl
Occlusion is now passed as a parameter to the lighting function.
Emission is handled outside of it since it's not properly a part of the
Cook-Torrance BRDF.
Mikko Rasa [Mon, 3 Oct 2022 20:43:33 +0000 (23:43 +0300)]
Handle OpPhi when specializing SPIR-V modules
Mikko Rasa [Sat, 1 Oct 2022 20:05:45 +0000 (23:05 +0300)]
Hack to work around an issue with the flat interpolation qualifier
It appears that at least on my current system (GeForce 980 Ti, driver
460.91.03) vertex attributes somehow block the flat qualifier from
working on the same location. It feels like a driver bug but that
remains to be confirmed.
Mikko Rasa [Sun, 25 Sep 2022 17:21:19 +0000 (20:21 +0300)]
An assortment of minor fixes
Mostly formatting, with a few cleanups of unnecessary things.
Mikko Rasa [Sun, 25 Sep 2022 17:15:03 +0000 (20:15 +0300)]
Only apply ambient occlusion to the ambient lighting component
Mikko Rasa [Sun, 25 Sep 2022 17:02:52 +0000 (20:02 +0300)]
Recreate ProgramData buffer when needed even if no blocks were updated
This can happen if setting a uniform triggers promotion of the buffer
from static to streaming, but the next shader program does not use that
uniform.
Mikko Rasa [Sun, 25 Sep 2022 16:58:40 +0000 (19:58 +0300)]
Use forward references for entry point interfaces in SPIR-V
Mikko Rasa [Sun, 25 Sep 2022 16:45:34 +0000 (19:45 +0300)]
Add a tint property for PBR materials
Mikko Rasa [Sun, 25 Sep 2022 16:32:08 +0000 (19:32 +0300)]
Fix exporting of single objects
Mikko Rasa [Sun, 25 Sep 2022 16:13:43 +0000 (19:13 +0300)]
Refactor handling of texture storage properties in the Blender exporter
Mikko Rasa [Sun, 25 Sep 2022 14:49:15 +0000 (17:49 +0300)]
Add flat interpolation qualifier for integer inputs in fragment shader
Mikko Rasa [Sun, 25 Sep 2022 14:48:51 +0000 (17:48 +0300)]
Fix validation checks for interpolation and sampling qualifiers
Mikko Rasa [Sun, 25 Sep 2022 13:18:01 +0000 (16:18 +0300)]
Print warnings if a required resource is not bound in PipelineState
Mikko Rasa [Sun, 11 Sep 2022 17:28:38 +0000 (20:28 +0300)]
Restore limits.max_storage_texture_bindings in Vulkan backend
Something funky happened with commits
569772f and
2a70fec , resulting in
this getting removed.
Mikko Rasa [Sun, 11 Sep 2022 17:23:52 +0000 (20:23 +0300)]
Remove the separate clamping step from forest pond fluid simulation
Instead calculate clamping on the fly in the integration shader. This
ends up using a few less texture reads in total.
Mikko Rasa [Sun, 11 Sep 2022 12:54:22 +0000 (15:54 +0300)]
Implement water simulation and surface shader for forest pond
Mikko Rasa [Sun, 11 Sep 2022 12:53:39 +0000 (15:53 +0300)]
Re-export forest pond data to enable alpha to coverage
Mikko Rasa [Tue, 6 Sep 2022 11:54:35 +0000 (14:54 +0300)]
Declare capability for extended storage image formats if required
Mikko Rasa [Tue, 6 Sep 2022 11:52:56 +0000 (14:52 +0300)]
Pass a non-sampled image to OP_IMAGE_FETCH
Mikko Rasa [Sun, 4 Sep 2022 10:55:57 +0000 (13:55 +0300)]
Fix exporting of resource-only scenes
Mikko Rasa [Sat, 3 Sep 2022 19:25:27 +0000 (22:25 +0300)]
Compare constructor calls in TypeComparer
These may arise if e.g. an uint constant is initialized with an integer
literal.
Mikko Rasa [Sat, 3 Sep 2022 13:40:35 +0000 (16:40 +0300)]
Support exporting meshes from Blender using patch primitives
Mikko Rasa [Sat, 3 Sep 2022 13:38:03 +0000 (16:38 +0300)]
Add tessellation shader support to the engine
Mikko Rasa [Sat, 3 Sep 2022 13:36:44 +0000 (16:36 +0300)]
Refactor batch setup in Renderer to a helper function
Mikko Rasa [Sat, 3 Sep 2022 13:31:16 +0000 (16:31 +0300)]
Clear load ID when assigning to a component
This prevents an issue where reading the value of the entire variable
afterwards would incorrectly use the old cached load.
Mikko Rasa [Sat, 3 Sep 2022 13:14:43 +0000 (16:14 +0300)]
Implement tessellation shaders in the shader compiler
Mikko Rasa [Sat, 3 Sep 2022 13:15:52 +0000 (16:15 +0300)]
Handle the flat and centroid qualifiers in SPIR-V output
Mikko Rasa [Sat, 3 Sep 2022 12:05:33 +0000 (15:05 +0300)]
Validate that compute shaders specify a workgroup size
Mikko Rasa [Sat, 3 Sep 2022 11:33:43 +0000 (14:33 +0300)]
Validate the presence of in/out layout qualifiers for geometry shaders
Builtin arrays are now always autosized, even when the appropriate size
isn't known, because the error message from the missing size is confusing.
Mikko Rasa [Thu, 1 Sep 2022 19:44:32 +0000 (22:44 +0300)]
Fix incorrect check for end of string when processing SPIR-V modules
Mikko Rasa [Thu, 1 Sep 2022 19:36:14 +0000 (22:36 +0300)]
Make VulkanFramebuffer::is_format_supported const
Mikko Rasa [Thu, 1 Sep 2022 19:32:37 +0000 (22:32 +0300)]
Use correct to_present flag when creating framebuffers and pipelines
After a recent update validation layers started complaining about
incompatible render passes because subpass dependencies did not match.
Mikko Rasa [Thu, 1 Sep 2022 19:31:17 +0000 (22:31 +0300)]
Make it possible to query if a framebuffer can be presented
Mikko Rasa [Sat, 13 Aug 2022 19:44:58 +0000 (22:44 +0300)]
Refactor creation of batches in the Blender exporter
Mikko Rasa [Sat, 23 Apr 2022 21:31:03 +0000 (00:31 +0300)]
Use alpha to coverage when exporting materials with alpha cutoff
Mikko Rasa [Sat, 23 Apr 2022 16:33:58 +0000 (19:33 +0300)]
Add support for alpha to coverage
Mikko Rasa [Tue, 19 Apr 2022 10:01:37 +0000 (13:01 +0300)]
Update pipeline handle if framebuffer changes
The pipeline's sample count must match that of the render pass.
Mikko Rasa [Tue, 19 Apr 2022 08:46:11 +0000 (11:46 +0300)]
Implement multisample resolve for Vulkan
Mikko Rasa [Tue, 19 Apr 2022 08:44:13 +0000 (11:44 +0300)]
Don't set the storage bit in usage flags of multisampled images
It requires a device feature to be set. I'll add that later.
Mikko Rasa [Tue, 19 Apr 2022 08:40:32 +0000 (11:40 +0300)]
Set mip levels of multisample textures to 1
Mikko Rasa [Tue, 19 Apr 2022 07:27:53 +0000 (10:27 +0300)]
Rework multisample resolve to use resolve attachments
Vulkan can only resolve a depth attachment as part of a subpass, and in
order to do that the attachments must all be in the same framebuffer.
Mikko Rasa [Tue, 19 Apr 2022 07:14:25 +0000 (10:14 +0300)]
Remove unused parameter from VulkanPipelineState::synchronize_resources
It got left over from an idea which didn't pan out.
Mikko Rasa [Fri, 15 Apr 2022 21:17:05 +0000 (00:17 +0300)]
Support compute shaders and compute operations
Mikko Rasa [Fri, 15 Apr 2022 20:10:37 +0000 (23:10 +0300)]
Add support for storage images in Renderer and PipelineState
Mikko Rasa [Fri, 15 Apr 2022 19:44:25 +0000 (22:44 +0300)]
Add a separate limit for storage texture binding range
Mikko Rasa [Fri, 15 Apr 2022 19:40:52 +0000 (22:40 +0300)]
Fix the version statement in the ARB_explicit_attrib_location extension
Mikko Rasa [Mon, 11 Apr 2022 11:44:16 +0000 (14:44 +0300)]
Support compute shaders in the shader compiler
Mikko Rasa [Mon, 11 Apr 2022 11:37:01 +0000 (14:37 +0300)]
Add support for storage images in shaders
Mikko Rasa [Mon, 11 Apr 2022 11:35:16 +0000 (14:35 +0300)]
Preparatory refactoring of the texelFetch implementation
Mikko Rasa [Mon, 11 Apr 2022 11:24:07 +0000 (14:24 +0300)]
Use the sampled image type for OpImageQueryLod
Mikko Rasa [Mon, 11 Apr 2022 11:22:48 +0000 (14:22 +0300)]
Don't resolve function call arguments with incorrect types
Mikko Rasa [Mon, 11 Apr 2022 11:22:25 +0000 (14:22 +0300)]
Refactor function call argument type resolving logic a bit
Mikko Rasa [Sun, 10 Apr 2022 10:03:20 +0000 (13:03 +0300)]
Add multisampled texture types to the shader compiler
Mikko Rasa [Sat, 9 Apr 2022 16:24:53 +0000 (19:24 +0300)]
Parse array sizes for interface blocks
This fixes the last failing test case.
Mikko Rasa [Sat, 9 Apr 2022 16:02:40 +0000 (19:02 +0300)]
Use VariableDeclaration in Assignment::Target
Mikko Rasa [Sat, 9 Apr 2022 16:01:25 +0000 (19:01 +0300)]
Don't add depth range conversion if an assignment to gl_Position.z exists
This is kinda crude since it triggers from any such assignment, but it
allows the idempotence test cases to work.
Mikko Rasa [Sat, 9 Apr 2022 13:22:21 +0000 (16:22 +0300)]
Fix GLSL test cases so they pass the basic tests
Some changes had changed the compiler output, particularly
acd7bb6 adding
an extra statement to the end of vertex shaders in OpenGL mode. Some
idempotence tests still fail because of this.
Mikko Rasa [Sat, 9 Apr 2022 11:43:49 +0000 (14:43 +0300)]
Make it possible to specify a target API for GLSL test cases
Mikko Rasa [Sat, 9 Apr 2022 11:41:04 +0000 (14:41 +0300)]
Remove Vulkan checks from feature converters
Since the GLSL version is now consistent, features can be checked
against it. This also makes the GLSL output behave better if used
on a shader compiled for Vulkan.
Mikko Rasa [Sat, 9 Apr 2022 11:39:37 +0000 (14:39 +0300)]
Refactor SL::Features::from_api_version to take the actual API version
Vulkan features now have a sensible GLSL version.
Mikko Rasa [Sat, 9 Apr 2022 11:34:44 +0000 (14:34 +0300)]
Fix incorrect version for ARB_explicit_attrib_location