| Age | Commit message (Collapse) | Author |
|
with a descriptor update template, even
yay
this also moves us to a minimum Vulkan version of 1.4, which we understand to be widely deployed. in theory, push descriptors and update templates were available via extensions in earlier versions, but it doesn't seem worth doing the work to switch out whether we use the extensions based on the version, so we don't.
Force-Push: yes
Change-Id: I26db8771abf5626d9614630c66e019ea99babcac
|
|
it's better this way. same lifetime.
Force-Push: yes
Change-Id: Ida309f05132838febcc9eb606f5915e7592ac398
|
|
this is, however, the first time one of these render state objects has been managed by another one rather than by main() directly, so there's a little weirdness around the lifetime logic that might need reconsidering. seems okay for now though.
Force-Push: yes
Change-Id: Ide3b9f0a7163f78a51ceed4dfb506232475354dd
|
|
Force-Push: yes
Change-Id: I54b5c8fcc692616f83a37039a445796dddd4b7e4
|
|
this will make it easier to change the image view dynamically as a push update, in a future CL
Force-Push: yes
Change-Id: If7cfab07913a5a462e16dd7fb478ed491d33d4d9
|
|
Force-Push: yes
Change-Id: Iecc7163cab1bcfe3b4b6fa8f8f648e87f514b706
|
|
yay build script stuff :)
Force-Push: yes
Change-Id: I694651febb02f42dac904f0dfbf4089c33ef937e
|
|
now it matches load_png() in a sort of abstract, high-level way
this is meant to make it easier to abstract over assets
Force-Push: yes
Change-Id: Icddc6180e0c78c29bebbd47d84bb381c4fd0c3ca
|
|
this mirrors files::obj
Force-Push: yes
Change-Id: I17ccae0b54b49453100873ba707ee36406b96057
|
|
the word "graphics" is part of the module name, so it does not need to be part of the struct name
the fact that an object holds state is... not strictly implied by the fact it's a struct, but it happens that ALL our objects exist primarily to hold state, so we remove that word as well
Force-Push: yes
Change-Id: I1b3e2ac0f1c29304e75a190172463aabfba4b3a4
|
|
as part of this, the command pools are moved from window dressing to permanent
note also how mip count is a value computed by loading the texture, and used when creating the sampler, which is part of the window dressing. the assumption about how it's computed will have to change when we support multiple textures, but for now we settle for just pushing the assumption to the top level.
Force-Push: yes
Change-Id: I545c53feedc99628fbe943120798fe66fe9e065b
|
|
Force-Push: yes
Change-Id: I0d506fa517daeacf63b52fdd5900f1bbee9c22b7
|
|
Vulkanalia tracks it for us in Device. it's used in Model, so it wasn't strictly in-scope for ForReinit; this solves the problem and simplifies some stuff.
Force-Push: yes
Change-Id: I8e38c236b3dc4c112671382a062c9ada2f34fbb1
|
|
Force-Push: yes
Change-Id: Ic6aa38b7d069825beadeb144eace5a9d23f0d21b
|
|
now this is starting to feel like halfway decent organization
Force-Push: yes
Change-Id: I45cc4afb45e1528705680eb4192c1e9ba72f53fb
|
|
Force-Push: yes
Change-Id: I5cbdf59870258f099fc6dd47ff2f1566376c1585
|
|
subdividing the lifetimes of all our various objects may feel questionable in general, but this particular division is a very natural one
Force-Push: yes
Change-Id: I499a32875a4d75965944af720e7bfd6ec5965c15
|
|
use push constants
this concludes the tutorial; there's now a bit of fairly obvious refactoring to do to group objects in a way that reflects when they're needed, which can be followed by building a real scene graph
Change-Id: Id3b76d00d08ae915270095bd606e41767b7ec177
Force-Push: yes
|
|
yay
less fuzz
or more fuzz
depending on what you think of as fuzz
Force-Push: yes
Change-Id: I207c040805d97baaa8be887a463a37863159056e
|
|
Force-Push: yes
Change-Id: I2683fa6e3f290a812b74e5b64701c3094bb5cbee
|
|
yay
Force-Push: yes
Change-Id: Icb715692286c8560532ab73d32a49be8f485d790
|
|
yay
Change-Id: I7795e22712f27b262cde807a942ddec342d07c55
Force-Push: yes
|
|
in order to test the depth buffer, which does not yet exist
Force-Push: yes
Change-Id: Ibb4c279ff8b83ad9c0c37897f623631c4e342fb0
|
|
separate from the linear algebra stuff
Force-Push: yes
Change-Id: I26fc7ac596f304fa35ca7a4d0e1349d4fa0685ee
|
|
wow yay :)
Force-Push: yes
Change-Id: I7053ec3a7ed7b46e9c9d1260fd0f73b398b798af
|
|
also refactor buffer management a little
this doesn't yet draw the texture
Change-Id: Id2efa761223a588bf599041ac525c3b988f0113b
Force-Push: yes
|
|
now we have real camera behavior. yay!
Force-Push: yes
Change-Id: I291d0cce0f2624e9bff8356c8dbe2aabc49599e2
|
|
Force-Push: yes
Change-Id: I66313a981a19ca65fa68463e89e093da14fde41e
|
|
ahem. more formally: provide animated uniforms to the shader, and use them
the tutorial just wants us to do three matrices, and to defer all the actual math to a library it recommends. that would certainly be simpler. anyway, we use quaterion+offset for everything but the projection frustum, and do all the math ourselves
Change-Id: I399f432bebb1e7ca4d4342efa1d5aaf37b32f427
Force-Push: yes
|
|
it's quite annoying otherwise, the build would fail with no explanation
Force-Push: yes
Change-Id: Ia5405c1f0e63f778da49ca1c85139f5e785fde29
|
|
Force-Push: yeah of course
Change-Id: I2b8937b53e0c329f20ed51a9806ca2c085ecf9f0
|
|
Force-Push: yes
Change-Id: I2c58bad402908fa36caf271da3cae78e43ef3110
|
|
this uses a staging buffer and a final buffer, per the tutorial. it also uses a new command pool for purely transient command buffers, which the tutorial mentions as a possibility but doesn't detail.
Force-Push: yes
Change-Id: Ic74c89045869bcc7bd0313aa162c87536fb561fc
|
|
Force-Push: yes
Change-Id: I3276e65f2ef29199b57a748a321998747b607b22
|
|
kinda cool how the driver interfaces with the kernel to map memory on our behalf
Force-Push: yes
Change-Id: I906f68b59dcedc1fd6d9bfc52c9b299abc9cd828
|
|
Force-Push: yes
Change-Id: I11c96044372dbc9fb10ad5af5d22e72a42080ca7
|
|
yay
Force-Push: yes
Change-Id: Id8dce4cd4bc696be322fe5b612837e3651437f7e
|
|
now that the two halves of the graphics state are in their own files, this is easier to read
the public functions remain as part of the impl
Force-Push: yes
Change-Id: Ic7d73be04f31b484348bbc5d62cc93f0c877717c
|
|
Force-Push: yes
Change-Id: Ib2db6c2af91698678c99969f575636abb4215b54
|
|
Force-Push: yes
Change-Id: I3600d1588ce7251b91e33a8956d89357fadda013
|
|
Force-Push: yes
Change-Id: I09cbc3c2e1e20beba0cf64d346222e3dc2d680ea
|
|
Force-Push: yes
Change-Id: Icd63ed890ae0c726b71bb85e02072faff32cb87e
|
|
this will help with the re-creation thing
Force-Push: yes
Change-Id: I74d70c7dd1d11ade0d1d4cf0a0e20da45b76e942
|
|
Force-Push: yes
Change-Id: I6968fd0332a86e595d2d6983c02c761e51300e9b
|
|
almost everything in Surreality that isn't in WindowDressing is now in Permanent
Force-Push: yes
Change-Id: I994427668030ed2ebf5f159fa4d5d665ca07b372
|
|
Force-Push: yes
Change-Id: I563da2752169ed5a6d6c6e0e712823222dcf850d
|
|
yay
Force-Push: yes
Change-Id: I65bef1f64c8e1eaef0897d9a01a2bf09cdef47f1
|
|
as a now-removed comment said, doing this repeatedly was always sus
Force-Push: yes
Change-Id: I419683cc979147aff1790a75aa03509b23ae561e
|
|
they are replaced with tuples and single-purpose bool wrappers
Force-Push: yes
Change-Id: Iabf9c1d3f9dddee160d556004b2a72b15cd6e574
|
|
the goal is to make clear that it's a single-purpose value-return struct
Force-Push: yes
Change-Id: Idf3a3ebce2d44ea4fa2c75073e33b34c9055ca8b
|