Commit Graph

84 Commits

Author SHA1 Message Date
bjorn 18413114ad Fix depthClamp; 2022-08-24 03:09:09 -07:00
bjorn 1c48578e95 Fix automipmap synchronization; 2022-08-23 18:49:11 -07:00
bjorn f310a7ad04 gpu_bind_bundles;
Now you can bind multiple bundles at once.
2022-08-08 20:36:22 -07:00
bjorn 2ebb4bb415 Improve OpenXR layout transitions a bit; 2022-08-06 23:25:49 -07:00
bjorn 8aa1cf91b2 Submit depth buffer to OpenXR; 2022-08-06 22:52:18 -07:00
bjorn 642388709b Shader helper improvements; 2022-08-06 13:06:42 -07:00
bjorn ed59eeb11c gpu: don't use VkPipelineCacheHeaderVersionOne;
Doesn't exist in NDK...
2022-08-05 23:41:25 -07:00
bjorn a23f0351cc WIP OpenXR layout transitions; 2022-08-05 18:36:51 -07:00
bjorn acd87a5e5c lovr.graphics.present;
It's nice to have an explicit action for presentation.
2022-08-04 00:06:54 -07:00
bjorn 89312c1c4b Add on-disk shader cache;
Set t.graphics.shadercache to true (the default) and lovr will
read/write a shader cache file from/to disk.
2022-08-02 22:06:44 -07:00
bjorn 4ee092e81b Make Pass a regular object;
It uses newPass instead of getPass.  Temporary objects had lifetime
issues that were nearly impossible to solve.  And normal objects are
easier to understand because they behave like all other LÖVR objects.

However, Pass commands are not retained from frame to frame.  Pass
objects must be re-recorded before every submit, and must be reset
before being recorded again.

Pass objects now provide a natural place for render-pass-related info
like clears and texture handles.  They also allow more information to be
precomputed which should reduce overhead a bit.

It is now possible to request a stencil buffer and antialiasing on the
window and headset textures, via conf.lua.

lovr.graphics.setBackground should instead set the clear color on the
window pass.  Though we're still going to try to do spherical harmonics
in some capacity.

There are still major issues with OpenXR that are going to be ironed
out, and the desktop driver hasn't been converted over to the new
headset Pass system yet.  So lovr.headset integration is a bit WIP.
2022-08-02 22:06:44 -07:00
bjorn 92201b87a1 Rename timer tally type to time; 2022-07-17 13:17:33 -07:00
bjorn c2dd7281cc mv stage tally -> shader tally; 2022-07-17 11:38:55 -07:00
bjorn 5d3e1f93cd Add d32fs8; 2022-07-17 11:03:00 -07:00
bjorn 32346796ef Tally/Readback cleanup; 2022-07-17 09:50:15 -07:00
bjorn e2bfff1b0a Tally/Readback fixes; 2022-07-14 19:23:02 -07:00
bjorn 3bfd9ca0e1 gpu: improve wait functions;
- gpu_finished -> gpu_is_complete
- add gpu_wait_tick -> can wait for specific tick to finish (fence)
- gpu_wait -> gpu_wait_idle
2022-07-14 00:04:38 -07:00
bjorn c54a587590 gpu: fix read scratchpad destruction; 2022-07-14 00:04:21 -07:00
bjorn ae87abc7bb gpu: fix allocator; 2022-07-11 19:53:53 -07:00
bjorn cfa5613db4 gpu: render pass cache uses correct resolve layout; 2022-07-10 17:06:43 -07:00
bjorn f23ae4009f gpu: Fix render pass cache eviction; 2022-07-10 17:06:20 -07:00
bjorn a44ab9bcfa Fix presentation sequence issue;
Fixes crash on error inside lovr.draw.
2022-07-05 21:58:54 -07:00
bjorn d06e0c8b09 gpu: tally waits for query results; 2022-06-30 17:34:30 -07:00
bjorn 0417e9095d gpu: add timestampPeriod limit; 2022-06-30 17:34:30 -07:00
bjorn c327eb103f Tally; 2022-06-30 17:34:29 -07:00
bjorn 24fd9e0c04 gpu: properly cast device to uintptr_t; 2022-06-26 00:46:11 -07:00
bjorn 7def390f9c OpenXR/CMake fixes; 2022-06-20 15:51:24 -07:00
bjorn af8c061c50 Default buffer can be used for colors; 2022-06-18 23:31:51 -07:00
bjorn 70e0f5c5cf Synchronization; 2022-06-11 22:55:43 -07:00
bjorn d9b5237851 Sync cleanup; 2022-06-11 19:07:46 -07:00
bjorn 2896dc0bfa gpu: indirect draws accept optional stride; 2022-06-09 23:31:46 -07:00
bjorn 988393bb7f gpu: properly expunge render passes and framebuffers; 2022-06-09 20:05:04 -07:00
bjorn 451e8a53ed Discard attachments more; 2022-06-09 19:26:53 -07:00
bjorn ac9bc5112b Fix typo; 2022-06-09 00:09:47 -07:00
bjorn efe57133d0 Validation errors are logs not errors; 2022-06-09 00:01:51 -07:00
bjorn 6f16385fa1 Improve graphics error handling; 2022-06-08 23:59:36 -07:00
bjorn d5325b87b4 Headset support; 2022-06-05 20:38:14 -07:00
bjorn d8583c6a9d gpu_compute; gpu_compute_indirect; 2022-06-04 11:53:59 -07:00
bjorn 2c2eada1f0 Fix pipeline creating the wrong render pass; 2022-06-04 01:31:16 -07:00
bjorn d9bf19da33 Fix texture memory allocation; 2022-06-04 01:30:51 -07:00
bjorn a09773a5c8 gpu_sync; 2022-05-31 21:50:29 -07:00
bjorn a2cc4f3495 Cap vertex attribute/buffer limits; 2022-05-31 20:40:50 -07:00
bjorn ec0da8e91f Correctly recycle scratchpad buffers; 2022-05-31 20:37:24 -07:00
bjorn 99e45c22ad Add some descriptor set limits; 2022-05-31 20:16:16 -07:00
bjorn 8253b7361c gpu: More vulkan functions use buffer offsets; 2022-05-30 15:26:01 -07:00
bjorn 2570485b20 gpu: pipeline creates render pass properly; 2022-05-30 13:32:59 -07:00
bjorn 32fb5e63ac Destroy descriptor pools properly; 2022-05-30 13:12:04 -07:00
bjorn 25bb64b18c gpu: viewport/binding fixes; 2022-05-29 23:58:18 -07:00
bjorn 082ddc0e1b gpu: add drawing functions; 2022-05-29 21:36:40 -07:00
bjorn 0c8f1b6400 gpu: add binding functions; 2022-05-29 21:36:29 -07:00