Commit Graph

3583 Commits

Author SHA1 Message Date
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
bjorn f89b1811aa Adjust default Buffer field locations;
I guess it's better to match them up with the default attributes.
In most cases you're going to want to manually specify them with names
or numbers anyway.
2022-07-10 12:35:02 -07:00
bjorn f7d7281e70 Add index16/index32 FieldTypes;
Similar to u16/u32 but are 1-indexed when written using tables.
2022-07-10 12:18:31 -07:00
bjorn 8e89026678 Shader:getLocalWorkgroupSize; 2022-07-09 23:39:03 -07:00
bjorn 886bfe18c1 Shader "improvements"; 2022-07-09 23:09:02 -07:00
bjorn c7f4e11b0b Improve shader errors; 2022-07-09 21:39:31 -07:00
bjorn e8a5f02e7b Start stats; 2022-07-09 21:19:51 -07:00
bjorn 159352770f Model:getTriangles;
Doesn't 100% work, Buffers are kind of a mess, ugh.
2022-07-09 18:30:36 -07:00
bjorn 40cbb18346 Ugly Pass:capsule; 2022-07-09 16:38:25 -07:00
bjorn b0c1dd5f12 Put nogame in its own file; 2022-07-06 23:50:43 -07:00
bjorn f2cfb19d4d Material textures must be sample-only;
Tracking every material's texture would add a lot of overhead, probably
2022-07-06 23:00:39 -07:00
bjorn 3bf5ec5744 Shader improvements;
Mostly renaming things and adding helper functions.
2022-07-06 22:54:56 -07:00
bjorn f9c07f852b gltf: KHR_texture_basisu; Only load active images; 2022-07-06 20:24:02 -07:00
bjorn 5f19c2e1be Model:getBoundingBox; Model:getBoundingSphere; 2022-07-06 19:22:02 -07:00
bjorn 516ac2a925 Fix validation issue when first draw uses empty vertex format; 2022-07-06 16:43:42 -07:00
bjorn a44ab9bcfa Fix presentation sequence issue;
Fixes crash on error inside lovr.draw.
2022-07-05 21:58:54 -07:00
bjorn dbc34c0fdc Update internal resource limit caps; 2022-07-04 15:54:43 -07:00
bjorn dd8d8fe67e Adjust; 2022-07-04 15:22:54 -07:00
bjorn b7e5bd1d67 Require 64KB uniform buffers;
64KB is near-ubiquitous, and the per-draw UBO needs this much space.
2022-07-04 15:21:43 -07:00
bjorn b934fac1df Pass:skybox; 2022-07-04 00:18:38 -07:00
bjorn 8aa14ba42b Shader:hasAttribute; 2022-07-03 23:04:56 -07:00
bjorn 2c339dd944 Shader:hasStage; 2022-07-03 22:59:49 -07:00
bjorn b2b6b14e3e Fix Pass:mesh error handling; 2022-07-03 22:40:19 -07:00
bjorn 917b97ca2d Adjust; 2022-07-03 21:48:43 -07:00
mcc 9a7eedbf4d Remove 'check on egress' behaviors where an error for a sound being too large is emitted only when a getter is called (left harder-to-remove checks that occur when a sound is loaded) 2022-07-03 21:34:16 -07:00
mcc 15aa08bbe7 Adjustments to MSVC warnings PR based on github comments 2022-07-03 21:34:16 -07:00
mcc 28d64b6ced Fix various compiler warnings in MSVC (non graphics edition)
- Put in casts/checks in audio code when assigning size_t to 32 bit
- () is different from (void)
- Turned off warnings for anonymous unions and negating unsigned integers which were technically accurate but unhelpful (and interfered with bit conversion and a weird bit math construct in audio.c) (CMakeLists only)
2022-07-03 21:34:16 -07:00
bjorn cdf6b2017e Fix segfault on shader compilation failure; 2022-07-03 20:19:17 -07:00
bjorn 4f15e7e34a Fix plane winding; 2022-07-03 20:07:00 -07:00
bjorn de090971f7 rm erroneous union; 2022-07-03 19:59:51 -07:00