bjorn
6444aba832
OpenXR: Map Index system buttons to menu;
...
SteamVR doesn't expose these, but monado does, so might as well bind them.
2022-09-14 21:35:43 -07:00
bjorn
5be425ddbe
Fix Pass:clear(Texture);
2022-09-14 20:53:42 -07:00
bjorn
1dd737d8a4
Make the logo a default shader;
...
Improves build system, improves filesize, seemingly improves startup time
2022-09-13 17:36:10 -07:00
bjorn
a31ae6a68f
Fix compileShader;
2022-09-13 17:22:48 -07:00
bjorn
b5651f9193
Fix lod range of default samplers;
2022-09-12 18:09:29 -07:00
bjorn
68f3610d5e
Fix stencil test;
2022-09-12 17:58:29 -07:00
bjorn
d8c23bacec
Source:setPitch;
...
Co-authored-by: Nevyn Bengtsson <nevyn@alloverse.com>
2022-09-11 20:41:58 -07:00
bjorn
1c9adea2e2
Simplify channel hash table;
2022-09-10 23:59:14 -07:00
bjorn
bcde681710
Mark ASTC textures as sRGB;
...
They don't contain this metadata, but marking as sRGB is more reasonable
than not.
2022-09-10 23:55:15 -07:00
bjorn
76557eb6ed
Add hand joint radius to getSkeleton;
2022-09-10 23:44:14 -07:00
bjorn
7636a3c5e9
Default window size matches conf.lua;
2022-09-10 21:10:01 -07:00
bjorn
860651e80c
rm falsy variant of lovr.system.openWindow;
...
Probably vestigial from conf invocation.
2022-09-10 20:53:55 -07:00
bjorn
0da84894e8
Fix gamma correction of multicolor text;
2022-09-10 14:55:15 -07:00
bjorn
0191d29a45
Handle missing Vulkan error;
2022-09-10 13:06:32 -07:00
bjorn
0b544df470
Rename OS_EXPORT to avoid macOS clash;
2022-09-10 12:53:52 -07:00
bjorn
d8c6c47e00
Add normal DefaultShader;
...
It's a pretty normal shader.
2022-09-10 11:07:55 -07:00
bjorn
5f921f1251
Unable to mipmap multisampled textures;
2022-09-10 11:02:03 -07:00
bjorn
7e1d9f1dd2
Fix desktop driver crash when window isn't open;
2022-09-10 10:58:11 -07:00
bjorn
931ffea17b
Pass:getClear returns correct value for dontcare/load actions;
2022-09-10 10:28:54 -07:00
bjorn
5c4fc79242
mv lovr.graphics.init lovr.graphics.initialize;
...
init is undocumentable due to Lua conventions.
2022-09-10 10:22:52 -07:00
bjorn
f30e37a2e3
Error if testing/writing non-existent stencil buffer;
2022-09-10 10:20:41 -07:00
bjorn
48ec18573a
Pass:getClear only includes depth when depth buffer exists;
2022-09-10 10:17:24 -07:00
bjorn
ee809ec31a
Pass:mipmap base mipmap index is 1-indexed;
2022-09-10 10:14:46 -07:00
bjorn
7851f49910
Make blit layers 1-indexed;
...
Annoying for 3D textures, but matches layer indices most elsewhere.
2022-09-10 10:13:34 -07:00
bjorn
a3beccb14e
Fixup 3D texture blit validation;
2022-09-10 10:12:06 -07:00
bjorn
a796c92556
Buffer:clear and Pass:clear(Buffer) use the same units;
2022-09-03 10:49:25 -07:00
bjorn
08f0ca7434
Font:getVertices wrap is optional;
2022-09-02 19:21:55 -07:00
bjorn
ed035f9e81
Adjust;
2022-09-02 18:53:50 -07:00
bjorn
8697466009
Shader flag adjustments;
...
- glowTexture is on by default, but still requires the glow flag.
- occlusionTexture is named ambientOcclusion, and is on by default,
but is still not used by any builtin shaders/helpers.
2022-09-02 15:33:18 -07:00
bjorn
ea30100c31
rm texture variant of newMaterial;
...
Does not make sense anymore now that Pass:setMaterial(Texture) exists.
2022-09-02 15:05:01 -07:00
bjorn
ce9662fa7e
Make Model draw start vertex 1-indexed;
...
That way it matches Pass:mesh.
2022-09-01 21:54:34 -07:00
bjorn
e57d76c6e9
Fix bug with base vertex in Pass:mesh;
2022-09-01 21:54:24 -07:00
bjorn
2a96fe4766
Desktop driver starts timestamp at zero;
...
Float conversion leads to precision issues
2022-08-28 15:02:46 -07:00
bjorn
63fbd4d223
Rebind descriptor sets if push constant ranges change;
2022-08-28 15:02:46 -07:00
mcc
2a0f9bb36c
Minor comments on audio.c
2022-08-27 08:44:24 -07:00
bjorn
de44f88b5f
rm XR_KHR_android_create_instance;
...
It's not needed anymore.
2022-08-26 23:21:01 -07:00
bjorn
54a5ca1c36
Initialize stencil mask state slightly better;
...
Not sure this has an effect but it seems better.
2022-08-26 22:23:28 -07:00
bjorn
e402f02918
Fix setColorWrite(bool) variant;
2022-08-26 22:23:13 -07:00
bjorn
7aebde2f92
Fix StencilAction;
2022-08-26 22:23:04 -07:00
bjorn
cf474fe392
Shader flags can start with flag_;
...
It will be ignored for matching purposes.
2022-08-26 10:22:53 -07:00
bjorn
8e44a271df
Fix default mipmap count for texture views;
2022-08-26 09:58:01 -07:00
bjorn
5a2fe54c04
Improve Pass:fill;
...
It can now fill an array texture to a multiview pass, copying to
the corresponding layers.
2022-08-26 09:57:51 -07:00
bjorn
d655daf213
Better Pass:send('var', nil) error;
2022-08-25 23:54:11 -07:00
bjorn
f4f95a64d7
Pass blends by default;
2022-08-25 22:01:12 -07:00
bjorn
78214988a4
Model only reskins when needed;
...
Saves a barriers when not animating models.
2022-08-25 21:59:10 -07:00
bjorn
ede1036694
Temporary Passes;
...
Sigh, back to getPass. I don't even know at this point. Basically now
that we came up with a half-solution for temp buffers, it makes sense to
apply this to passes as well, since we aren't going with the workstream
idea and temp passes are more convenient than retained passes.
2022-08-25 21:57:15 -07:00
bjorn
18413114ad
Fix depthClamp;
2022-08-24 03:09:09 -07:00
bjorn
d3c93634ad
Fix KTX1 cube/array loading;
2022-08-23 20:17:19 -07:00
bjorn
0496b81f23
Improve KTX1 error messages;
2022-08-23 20:16:58 -07:00
bjorn
b8df6f9651
Fix rg11b10f KTX1 loading, I think;
2022-08-23 20:15:36 -07:00
bjorn
1a809666ec
Fix loading KTX files with mipmaps;
...
Forgot to allocate memory for mipmaps.
2022-08-23 20:15:16 -07:00
bjorn
fcf64cb6e4
Pass:send supports tables;
2022-08-23 19:25:45 -07:00
bjorn
f45706f875
Change Buffer format 'name' to 'location' string;
...
Name is confusing because it seems like it supports key/value setting.
2022-08-23 19:17:54 -07:00
bjorn
1c48578e95
Fix automipmap synchronization;
2022-08-23 18:49:11 -07:00
bjorn
e4024d82c4
Improve error messages for invalid view index;
2022-08-23 18:18:44 -07:00
bjorn
8dfc67d59c
Add missing checks for automipmap transfer usage;
2022-08-23 18:17:38 -07:00
bjorn
a4241db04f
Add shorthand for procedural vertex rendering;
...
Instead of a vertex buffer, you can specify a vertex count.
2022-08-22 21:00:14 -07:00
bjorn
ebf049e9d1
Model:resetNodeTransforms;
2022-08-22 20:44:01 -07:00
bjorn
79cd7c10a1
Improve temporary buffers;
...
- They no longer live in temporary memory, but in a dedicated pool.
- There are error checks for using a temporary buffer after it's invalid
- However, these are imperfect, and could be improved. One idea is to
avoid recycling a temporary buffer until its refcount decays (i.e.
Lua finally decides to garbage collect it). This would explode
memory usage sometimes, so it could only be enabled when
t.graphics.debug is true.
2022-08-22 20:30:09 -07:00
bjorn
10252686aa
Fix typo;
2022-08-22 20:18:47 -07:00
bjorn
f914b6fcf1
Fix memory leak with shader cache;
2022-08-22 20:18:34 -07:00
bjorn
8b83626051
Increase size of swapchain format array;
2022-08-20 11:03:14 -07:00
bjorn
dd5e89523d
Fix BC1/BC4 sizes;
2022-08-19 23:15:18 -07:00
bjorn
460ae0f6a0
Fix Pass:send('bool', bool);
2022-08-19 22:26:20 -07:00
bjorn
ba7bdd11c3
Fix index FieldType shorthand;
2022-08-19 20:51:50 -07:00
Josip Miskovic
6ba902ba1c
Fix SPV type conversion for vec
2022-08-19 20:10:58 -07:00
Josip Miskovic
fcc684ac28
Handle fullscreen fill without texture
2022-08-18 09:04:42 -07:00
Josip Miskovic
0cea42fb08
Fix default Image format
2022-08-18 09:04:42 -07:00
bjorn
f515346e20
Rename CoordinateSpace;
...
It's now OriginType, and global -> root and local -> parent.
2022-08-17 22:33:43 -07:00
bjorn
f570ee980c
Add Model:getMaterialName;
2022-08-17 22:05:05 -07:00
bjorn
7087cef57f
Fix bug with Image -> Texture copies;
2022-08-17 18:09:12 -07:00
bjorn
3e8b1681df
Pass:mesh supports baseVertex;
2022-08-17 18:09:04 -07:00
bjorn
081afc3140
No more special-cased orthographic projection;
2022-08-17 18:08:38 -07:00
bjorn
817ed9f4e9
ModelData:getMeshIndex is 1-based;
2022-08-17 18:08:26 -07:00
bjorn
8bbff5dd77
lovr.graphics.present idempotence;
2022-08-14 12:02:51 -07:00
bjorn
74048a6345
Fix float specialization constants;
2022-08-14 09:42:54 -07:00
bjorn
6fa8b570da
Fix OpenXR usage of setBackground;
2022-08-13 21:21:17 -07:00
bjorn
5799b0effb
Rename setBackground back to setBackgroundColor;
...
The "fancy background" idea won't go here.
2022-08-13 21:10:58 -07:00
bjorn
6052ed7a95
Rename ModelData enums;
...
To better match graphics.
2022-08-13 21:10:03 -07:00
bjorn
2c4f5a13df
luax_readmesh supports Model again;
2022-08-13 21:09:33 -07:00
bjorn
f679d602bd
Fix cone winding;
2022-08-12 23:30:33 -07:00
bjorn
d69ec7bff0
Default friction is infinity;
...
Re-apply bug behavior
2022-08-12 23:30:13 -07:00
bjorn
401ec05d00
Fix Pass:send with textures/samplers;
2022-08-12 22:44:24 -07:00
bjorn
b615de26d6
Add os_get_glfw_window;
...
So lovr-keyboard and lovr-mouse and friends can continue to work.
2022-08-12 21:09:40 -07:00
bjorn
3cbf85c98a
Adjust error screen font size and default perspective;
2022-08-12 21:08:25 -07:00
bjorn
ad6360d2fd
Clean up boot.lua;
...
A lot of clean up can happen now that C doesn't push delayed errors to
Lua. This was happening for Pico and WebVR, neither of which are used
anymore.
Also default vsync to true but force it off if VR is active.
2022-08-12 20:18:55 -07:00
bjorn
143b0ba664
Fix DefaultShader initialization;
2022-08-12 18:26:47 -07:00
bjorn
8233c202ba
Fix Pass:points / Pass:lines with vectors;
2022-08-12 18:11:45 -07:00
bjorn
0be94e0f1a
Set default material normalScale to 1;
2022-08-12 17:44:29 -07:00
bjorn
3b33f4917e
Fix vertex format binding;
2022-08-12 17:43:41 -07:00
bjorn
7e5221492d
rm pointSize from Material;
...
It's weird, and about as inconvenient as just putting it in the shader.
2022-08-09 19:54:54 -07:00
bjorn
63a327c0b2
Add getLighting builtin function to shaders;
2022-08-09 19:49:47 -07:00
bjorn
31d49fe8c6
When graphics module is destroyed, stop XR session;
...
Terrible, but better.
2022-08-08 23:27:35 -07:00
bjorn
3c71828afa
Revert "Change the way modules are destroyed;"
...
This reverts commit 019814e2c1
.
2022-08-08 23:16:34 -07:00
bjorn
0436a5deae
Rework automipmapping;
...
The sync was totally wrong here. It's a bit better now. However there
are some general sync issues that need to be fixed. Basically a Pass
that does reads and writes or multiple writes doesn't work properly, for
various reasons. I think sync needs to be split into 2 phases -- first
process all the reads and merge barrier bits into the barrier of the
last writer, then process all the writes and set 'final' resource state
for stuff in the pass. Due to branch prediction it may be better to
have 2 separate lists -- one for reads and one for writes. And I'm not
100% sure on how to reconcile a Pass that is doing reads and writes to
the same resource yet, still thinking about it.
2022-08-08 21:26:07 -07:00
bjorn
bf2f5a398c
Fix defaultMaterial;
2022-08-08 20:40:57 -07:00
bjorn
f310a7ad04
gpu_bind_bundles;
...
Now you can bind multiple bundles at once.
2022-08-08 20:36:22 -07:00
bjorn
d88a7bdc8b
Forbid Pass appearing twice in same submit;
2022-08-07 22:29:26 -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
eba71d5921
Fix more warnings;
2022-08-06 19:23:41 -07:00
bjorn
a2ee485d41
Fix most windows warnings in graphics code;
...
Co-authored-by: mcc <andi.m.mcclure@gmail.com>
2022-08-06 18:05:30 -07:00
bjorn
7efd19c45c
Add uniform buffer for global constants;
...
So far it has resolution and timestamp.
Broke the nogame shader, need to recompile.
2022-08-06 13:37:27 -07:00
bjorn
642388709b
Shader helper improvements;
2022-08-06 13:06:42 -07:00
bjorn
c41188c4b4
Merge branch 'master' into dev
2022-08-06 11:08:02 -07:00
bjorn
dd4fa5c382
Synchronize Material textures;
2022-08-06 00:50:25 -07:00
bjorn
6011e61d52
Fix lovr.headset.newModel and lovr.headset.animate;
2022-08-06 00:29:46 -07:00
bjorn
ed59eeb11c
gpu: don't use VkPipelineCacheHeaderVersionOne;
...
Doesn't exist in NDK...
2022-08-05 23:41:25 -07:00
bjorn
73f61b35b3
Fix background color space;
2022-08-05 22:14:09 -07:00
bjorn
2a3215fa05
Make indirect draws a :mesh variant;
2022-08-05 22:11:43 -07:00
bjorn
fcbeccdfb1
Fix background colors;
2022-08-05 21:05:02 -07:00
bjorn
cb59f64a7b
Adjust desktop fov;
2022-08-05 19:18:41 -07:00
bjorn
a23f0351cc
WIP OpenXR layout transitions;
2022-08-05 18:36:51 -07:00
bjorn
7ceefcf4c2
Fix mat4_getFov;
2022-08-04 21:55:22 -07:00
bjorn
019814e2c1
Change the way modules are destroyed;
...
They are now destroyed explicitly after tearing down the Lua state
instead of relying on finalizers. It's definitely annoying to make it
coordinated in a centralized way like this instead of being distributed,
but there's not really any reliabel way to ensure that graphics objects
are destroyed before the graphics module/device is destroyed, which is a
problem.
2022-08-04 21:44:34 -07:00
bjorn
aa4fce2842
Rename luax_atexit internals;
2022-08-04 21:33:37 -07:00
bjorn
16860e8ef5
rm stats;
...
These stats don't make sense right now.
2022-08-04 07:59:07 -07:00
bjorn
7c7f8ed907
Free ModelData metadata;
2022-08-04 00:31:39 -07:00
bjorn
eac3299bd0
ModelData:getMetadata;
2022-08-04 00:27:20 -07:00
bjorn
a6d843c642
Fix desktop driver;
2022-08-04 00:12:41 -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
9b19a1cd47
Fix lovr.headset.animate;
2022-08-02 23:06:49 -07:00
bjorn
d42cac288f
Use anonymous union for ModelNode transform;
2022-08-02 23:03:52 -07:00
bjorn
10f2b727b6
glslang: auto map locations and binding numbers;
2022-08-02 22:06:44 -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
289f08b0df
Fix OpenXR texture layer count;
2022-08-01 22:43:44 -07:00
bjorn
d81d906f58
Fix;
2022-08-01 22:35:20 -07:00
bjorn
8952476e35
Adjust;
2022-08-01 22:14:49 -07:00
Josip Miskovic
31ca502034
Add isKeyDown
2022-08-01 22:13:30 -07:00
bjorn
c0dfb414d6
Per-stage default shaders;
2022-08-01 22:10:06 -07:00
bjorn
ac104e6f41
WIP stereo blit shader;
2022-07-31 13:26:35 -07:00
bjorn
c4ff7cca39
Passes track their readbacks;
...
There are some issues with immediately tracking readbacks in the global
linked list of pending readbacks:
- The Pass might not get submitted, in which case the readback will be
"dangling" and never complete (or it will erroneously think it's
completed but its buffer will contain garbage data).
- Thread safety issues of modifying a global data structure from a Pass.
Instead, Pass will locally track the readbacks it performs, and only at
submit time will those readbacks get added to the global list.
(There is a little bit of refcounting mistakes now, those will get
cleaned up).
2022-07-31 13:02:41 -07:00
bjorn
50f596bd34
Default shaders use lovrmain;
2022-07-31 11:18:15 -07:00
bjorn
2414f5f269
Material uvShift can be a single number too;
2022-07-31 10:39:49 -07:00
bjorn
4919daa93b
Small fixes;
2022-07-31 10:39:49 -07:00
bjorn
e87cec1b49
Reduce number of materials per block;
2022-07-31 10:39:49 -07:00
bjorn
9e4765818a
Rename texture depth to layer count;
2022-07-31 10:39:49 -07:00
bjorn
571c71b76e
Rename pipeline stack to state;
2022-07-31 10:39:49 -07:00
Josip Miskovic
7c792fd975
Fix cylinder's triangle winding and normals
2022-07-31 09:38:40 -07:00
Kelsey Higham
50b321fb64
More beginner-friendly error message
2022-07-21 16:30:13 -07:00
bjorn
a0173252b9
Slight improvement to lovr.mirror;
2022-07-17 20:07:31 -07:00
bjorn
922942a0bf
Initialize Pass font properly;
2022-07-17 20:07:20 -07:00
bjorn
d9623a51a9
Pass:setFont;
2022-07-17 19:53:31 -07:00
bjorn
24504d1719
Adjust;
2022-07-17 16:38:29 -07:00
bjorn
d17131c421
Pass:cone;
2022-07-17 16:38:00 -07:00
bjorn
92201b87a1
Rename timer tally type to time;
2022-07-17 13:17:33 -07:00
bjorn
83fa750a4d
Support and default to reverse-z with infinite far plane;
2022-07-17 12:37:59 -07:00
bjorn
1df537294a
Improve Model texture loading;
...
- Only loads textures used by materials
- Creates color/glow textures as sRGB
2022-07-17 12:04:47 -07:00
bjorn
c2dd7281cc
mv stage tally -> shader tally;
2022-07-17 11:38:55 -07:00