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
6de50a83c4
Shader changes;
2022-07-31 12:49:18 -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
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
bjorn
1946fbb540
Reduce default near plane;
...
I feel like we've (un)done this before...
2022-07-17 11:05:24 -07:00
bjorn
5d3e1f93cd
Add d32fs8;
2022-07-17 11:03:00 -07:00
bjorn
7aab5ce79b
Fix errhand;
2022-07-17 09:55:27 -07:00
bjorn
32346796ef
Tally/Readback cleanup;
2022-07-17 09:50:15 -07:00
bjorn
faa690b7f0
Material API;
...
Just returns everything as a table. Some sort of key-value thing would
be nice but complicates the implementation.
2022-07-17 09:29:13 -07:00
bjorn
35d8a4c49c
Tally API;
2022-07-17 09:05:39 -07:00
bjorn
430f687add
Projection updates;
...
- Rename/reorder some projection matrix functions.
- Make perspective functions flip Y and use 0-1 NDC range.
- Flip winding and font vertices based on handedness.
This stuff is really confusing
2022-07-17 09:02:53 -07:00
bjorn
1bc31b7751
Revert accidental winding change;
2022-07-15 21:42:31 -07:00
bjorn
e2bfff1b0a
Tally/Readback fixes;
2022-07-14 19:23:02 -07:00
bjorn
45135899a1
Readback, mostly;
2022-07-14 00:05:58 -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
4909a1963b
Fix clear alpha;
2022-07-14 00:03:58 -07:00
bjorn
f5ec2e9158
Don't encode Images upside down anymore;
2022-07-13 23:59:35 -07:00
bjorn
bca10c9e98
Make info structs const;
2022-07-13 00:07:15 -07:00
bjorn
0b76ab7e96
Add a few Tally things;
2022-07-12 19:59:12 -07:00
bjorn
1c571001e7
Finish Model API;
2022-07-12 19:35:23 -07:00
bjorn
cd65e8d34c
Cache only rebinds vertex/index buffers when needed;
2022-07-12 17:19:30 -07:00
bjorn
83245afae6
Fix Font:getLines;
2022-07-11 22:43:42 -07:00
bjorn
4e92a4e503
Super ultra cool geometry cache;
...
Pass stores a small 16-bucket cache of vertices/indices it recently
generated. Draws that have relatively predictable geometry can provide
a hash along with their draw. The Pass will reuse vertices based on the
hash, when possible, and return a NULL vertex pointer to let the draw-er
know they don't need to generate any vertices.
This provides a dramatic speedup when drawing the same shape many times
in a row. The overhead is negligible, with benefits kicking in with
just a small handful of repeated draws (3-5 for cubes, less for more
complex shapes).
2022-07-11 20:52:35 -07:00
bjorn
ae87abc7bb
gpu: fix allocator;
2022-07-11 19:53:53 -07:00
bjorn
a4e4181489
Error screen;
2022-07-10 21:37:52 -07:00
bjorn
a0cd36a77b
Fix torus winding;
2022-07-10 18:02:49 -07:00
bjorn
0a251495bc
Fix normal matrix;
2022-07-10 18:02:44 -07:00
bjorn
698977c5be
Better default torus segments;
2022-07-10 18:02:31 -07:00
bjorn
e8ebb17796
Fix hexcode render pass clear;
2022-07-10 17:07:04 -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
dacd17066d
luax_checkendpoints;
...
Allows drawing a sphere/capsule using 2 endpoints.
2022-07-10 13:11:47 -07:00
bjorn
4e8fe82f94
Font:getVertices;
2022-07-10 12:49:47 -07:00
bjorn
889b1d8271
Improve Buffer length estimation;
2022-07-10 12:49:11 -07:00