]>
git.tdb.fi Git - libs/gl.git/log
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
Mikko Rasa [Sat, 9 Apr 2022 06:33:21 +0000 (09:33 +0300)]
Refactor Renderer's texture management to make it more extensible
The same code can now be used for other kinds of resources as well.
Mikko Rasa [Fri, 8 Apr 2022 20:44:37 +0000 (23:44 +0300)]
Unify handling of shader resources in PipelineState
Mikko Rasa [Thu, 7 Apr 2022 20:54:10 +0000 (23:54 +0300)]
Fix an incorrect variable name
Mikko Rasa [Thu, 7 Apr 2022 20:50:31 +0000 (23:50 +0300)]
Refresh target framebuffer before blitting
It seems that this has been broken since
ce36589 without getting noticed.
Mikko Rasa [Thu, 7 Apr 2022 07:38:21 +0000 (10:38 +0300)]
Use a default sampler in Renderer if null was passed in
Mikko Rasa [Tue, 22 Mar 2022 07:53:09 +0000 (09:53 +0200)]
Refactor render pass operations into a helper struct
Mikko Rasa [Tue, 22 Mar 2022 07:19:39 +0000 (09:19 +0200)]
Some adjustments to includes
Mikko Rasa [Mon, 21 Mar 2022 21:31:05 +0000 (23:31 +0200)]
Fix issues from the command recorder refactoring
Mikko Rasa [Sat, 19 Mar 2022 22:45:57 +0000 (00:45 +0200)]
Make StructureBuilder return const references to the pointers
Mikko Rasa [Sat, 19 Mar 2022 08:51:40 +0000 (10:51 +0200)]
Add a wrapper class for recording Vulkan commands
This makes the command syntax shorter by storing the command buffer
handle in the wrapper.
Mikko Rasa [Sat, 19 Mar 2022 07:57:38 +0000 (09:57 +0200)]
Move environment map handling to its own shader file
Mikko Rasa [Sat, 19 Mar 2022 07:54:49 +0000 (09:54 +0200)]
Fix a copy-paste error
Mikko Rasa [Fri, 18 Mar 2022 22:57:03 +0000 (00:57 +0200)]
Add files which were forgotten earlier
These should have been in
370eb9e .
Mikko Rasa [Fri, 18 Mar 2022 22:49:32 +0000 (00:49 +0200)]
Begin creating a new demo program
Mikko Rasa [Thu, 17 Mar 2022 20:12:20 +0000 (22:12 +0200)]
Mostly cosmetic changes
Mikko Rasa [Thu, 17 Mar 2022 20:08:13 +0000 (22:08 +0200)]
Make it possible to export instance arrays from Blender
Mikko Rasa [Thu, 17 Mar 2022 20:06:10 +0000 (22:06 +0200)]
Add a loader to InstanceArray and make them loadable in scenes
Mikko Rasa [Thu, 17 Mar 2022 20:04:52 +0000 (22:04 +0200)]
Add instancing support to standard shaders and RenderMethod
Mikko Rasa [Thu, 17 Mar 2022 20:00:58 +0000 (22:00 +0200)]
Call set_matrix from ObjectInstance's transform loader
Mikko Rasa [Thu, 17 Mar 2022 19:57:09 +0000 (21:57 +0200)]
Fix instance attribute description updates in VertexSetup on Vulkan
It was ignoring padding attributes when calculating which index to use
for the first instance attribute, resulting in a bogus description.
Mikko Rasa [Thu, 17 Mar 2022 19:56:40 +0000 (21:56 +0200)]
Sort shader program input attributes by name
The lookup requires this. It seems to have gotten broken in
2576b61 , but
since the only user is InstanceArray, it wasn't noticed until now.
Mikko Rasa [Thu, 17 Mar 2022 19:55:18 +0000 (21:55 +0200)]
Redesign InstanceArray
It now stores the instances contiguously in memory instead of allocating
them individually. Consequently only one type of instance is allowed in
any particular array.
Mikko Rasa [Thu, 17 Mar 2022 19:47:01 +0000 (21:47 +0200)]
Rebind all descriptor sets if push constant layout changes
Mikko Rasa [Thu, 17 Mar 2022 10:17:48 +0000 (12:17 +0200)]
Further refactoring of instance handling in the Blender exporter
Mikko Rasa [Thu, 17 Mar 2022 09:06:47 +0000 (11:06 +0200)]
Move the utility functions in export_material into MaterialExporter
Mikko Rasa [Thu, 17 Mar 2022 08:46:50 +0000 (10:46 +0200)]
Remove support for material atlases from the Blender exporter
Support for PBR materials was never added and it's unknown if it even
works anymore. Baking and vertex colors are better solutions.
Mikko Rasa [Wed, 16 Mar 2022 16:28:27 +0000 (18:28 +0200)]
Set debug names for pipeline and descriptor set layouts on Vulkan
Mikko Rasa [Wed, 16 Mar 2022 16:27:38 +0000 (18:27 +0200)]
Add a missing function import
Mikko Rasa [Wed, 16 Mar 2022 16:27:23 +0000 (18:27 +0200)]
Don't try to draw world properties if there's no world
Mikko Rasa [Wed, 16 Mar 2022 16:26:47 +0000 (18:26 +0200)]
Export instances created through geometry nodes
Mikko Rasa [Wed, 16 Mar 2022 16:26:12 +0000 (18:26 +0200)]
Refactor object prototype discovery in the blender exporter
Mikko Rasa [Wed, 16 Mar 2022 15:56:30 +0000 (17:56 +0200)]
Fix handling of descriptor set bindings when shader stages change
Also set only the present stages for descriptor set layouts.
Mikko Rasa [Wed, 16 Mar 2022 15:54:05 +0000 (17:54 +0200)]
Fix binding of descriptor sets of the new pipeline has more than the last
Mikko Rasa [Wed, 16 Mar 2022 11:34:37 +0000 (13:34 +0200)]
Initialize pipeline handle
Mikko Rasa [Wed, 16 Mar 2022 11:29:09 +0000 (13:29 +0200)]
Skip binding of low-numbered descriptor sets if they haven't changed
Mikko Rasa [Wed, 16 Mar 2022 11:27:47 +0000 (13:27 +0200)]
Annotate uniforms with descriptor set layout qualifiers
Higher numbered sets are used for data which is expected to change
more often.
Mikko Rasa [Wed, 16 Mar 2022 11:20:59 +0000 (13:20 +0200)]
Mask out the descriptor set part of bind point when creating layouts
Mikko Rasa [Wed, 16 Mar 2022 11:17:25 +0000 (13:17 +0200)]
Remove set layout qualifiers on OpenGL
But only if a binding qualifier is not present. This allows using
multiple descriptor sets on Vulkan without breaking OpenGL.
Mikko Rasa [Wed, 16 Mar 2022 09:28:11 +0000 (11:28 +0200)]
Replace some local pointers with references in VulkanCommands
Mikko Rasa [Wed, 16 Mar 2022 09:23:31 +0000 (11:23 +0200)]
Only mark Result as checked if that specific value was checked