summary refs log tree commit diff
AgeCommit message (Collapse)Author
2026-08-16move uniform buffers into FrameIrene Knapp
it's better this way. same lifetime. Force-Push: yes Change-Id: Ida309f05132838febcc9eb606f5915e7592ac398
2026-08-14move the Frame destruction code to where it goesIrene Knapp
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
2026-08-14move all the per-frame stuff into its own struct and fileIrene Knapp
Force-Push: yes Change-Id: I54b5c8fcc692616f83a37039a445796dddd4b7e4
2026-08-12split the texture's sampler and its image view into separaet bindingsIrene Knapp
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
2026-08-10simpler include paths for assets in the output directoryIrene Knapp
Force-Push: yes Change-Id: Iecc7163cab1bcfe3b4b6fa8f8f648e87f514b706
2026-08-09abstract over bundled assetsIrene Knapp
yay build script stuff :) Force-Push: yes Change-Id: I694651febb02f42dac904f0dfbf4089c33ef937e
2026-08-09change the interface to load_obj()Irene Knapp
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
2026-08-09move PNG-specific code to a new module files::pngIrene Knapp
this mirrors files::obj Force-Push: yes Change-Id: I17ccae0b54b49453100873ba707ee36406b96057
2026-08-09rename and reexport a bunch of graphics state typesIrene Knapp
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
2026-08-09refactor Texture into its own thingIrene Knapp
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
2026-08-08move the obj loader to a more logical placeIrene Knapp
Force-Push: yes Change-Id: I0d506fa517daeacf63b52fdd5900f1bbee9c22b7
2026-08-08remove physical_device from ForReinitIrene Knapp
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
2026-08-08move models into their own struct and fileIrene Knapp
Force-Push: yes Change-Id: Ic6aa38b7d069825beadeb144eace5a9d23f0d21b
2026-08-06further splitting of graphics submodulesIrene Knapp
now this is starting to feel like halfway decent organization Force-Push: yes Change-Id: I45cc4afb45e1528705680eb4192c1e9ba72f53fb
2026-08-06move some modules into a new graphics submoduleIrene Knapp
Force-Push: yes Change-Id: I5cbdf59870258f099fc6dd47ff2f1566376c1585
2026-08-06state needed when rendering is now in its own structIrene Knapp
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
2026-08-06factor out the render commands into a new scene moduleIrene Knapp
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
2026-08-03antialiasingIrene Knapp
yay less fuzz or more fuzz depending on what you think of as fuzz Force-Push: yes Change-Id: I207c040805d97baaa8be887a463a37863159056e
2026-07-27generate mipmapsIrene Knapp
Force-Push: yes Change-Id: I2683fa6e3f290a812b74e5b64701c3094bb5cbee
2026-07-20load a nontrivial model and render it with a textureIrene Knapp
yay Force-Push: yes Change-Id: Icb715692286c8560532ab73d32a49be8f485d790
2026-07-18depth bufferIrene Knapp
yay Change-Id: I7795e22712f27b262cde807a942ddec342d07c55 Force-Push: yes
2026-07-18draw a second squareIrene Knapp
in order to test the depth buffer, which does not yet exist Force-Push: yes Change-Id: Ibb4c279ff8b83ad9c0c37897f623631c4e342fb0
2026-07-18pull the shader data stuff into its own fileIrene Knapp
separate from the linear algebra stuff Force-Push: yes Change-Id: I26fc7ac596f304fa35ca7a4d0e1349d4fa0685ee
2026-07-18draw the imageIrene Knapp
wow yay :) Force-Push: yes Change-Id: I7053ec3a7ed7b46e9c9d1260fd0f73b398b798af
2026-07-18load a texture imageIrene Knapp
also refactor buffer management a little this doesn't yet draw the texture Change-Id: Id2efa761223a588bf599041ac525c3b988f0113b Force-Push: yes
2026-07-17add Transformation::look_at()Irene Knapp
now we have real camera behavior. yay! Force-Push: yes Change-Id: I291d0cce0f2624e9bff8356c8dbe2aabc49599e2
2026-07-15add an fps counterIrene Knapp
Force-Push: yes Change-Id: I66313a981a19ca65fa68463e89e093da14fde41e
2026-07-15it spins!!!!Irene Knapp
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
2026-07-12print error messages from glslangIrene Knapp
it's quite annoying otherwise, the build would fail with no explanation Force-Push: yes Change-Id: Ia5405c1f0e63f778da49ca1c85139f5e785fde29
2026-07-11skip dotfiles while compiling shadersIrene Knapp
Force-Push: yeah of course Change-Id: I2b8937b53e0c329f20ed51a9806ca2c085ecf9f0
2026-07-11use an index buffer now, and draw two trianglesIrene Knapp
Force-Push: yes Change-Id: I2c58bad402908fa36caf271da3cae78e43ef3110
2026-07-11don't rely on having shared memoryIrene Knapp
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
2026-07-11abstract buffer managementIrene Knapp
Force-Push: yes Change-Id: I3276e65f2ef29199b57a748a321998747b607b22
2026-07-09allocate and use a vertex bufferIrene Knapp
kinda cool how the driver interfaces with the kernel to map memory on our behalf Force-Push: yes Change-Id: I906f68b59dcedc1fd6d9bfc52c9b299abc9cd828
2026-07-09don't draw when minimized (nice and easy)Irene Knapp
Force-Push: yes Change-Id: I11c96044372dbc9fb10ad5af5d22e72a42080ca7
2026-07-09okay, reinitializing for window changes works nowIrene Knapp
yay Force-Push: yes Change-Id: Id8dce4cd4bc696be322fe5b612837e3651437f7e
2026-07-09make most of the associated functions into file-level functionsIrene Knapp
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
2026-07-09move all the window dressing stuff into its own fileIrene Knapp
Force-Push: yes Change-Id: Ib2db6c2af91698678c99969f575636abb4215b54
2026-07-09move all the PermanentGraphicsState stuff into its own fileIrene Knapp
Force-Push: yes Change-Id: I3600d1588ce7251b91e33a8956d89357fadda013
2026-07-09move all the permanent graphics state init into the implIrene Knapp
Force-Push: yes Change-Id: I09cbc3c2e1e20beba0cf64d346222e3dc2d680ea
2026-07-09move all the window dressing init logic into impl WindowDressingIrene Knapp
Force-Push: yes Change-Id: Icd63ed890ae0c726b71bb85e02072faff32cb87e
2026-07-09move the details of dropping WindowDressing into a new functionIrene Knapp
this will help with the re-creation thing Force-Push: yes Change-Id: I74d70c7dd1d11ade0d1d4cf0a0e20da45b76e942
2026-07-09move all the window dressing initialization into its own functionIrene Knapp
Force-Push: yes Change-Id: I6968fd0332a86e595d2d6983c02c761e51300e9b
2026-07-09new Permanent structIrene Knapp
almost everything in Surreality that isn't in WindowDressing is now in Permanent Force-Push: yes Change-Id: I994427668030ed2ebf5f159fa4d5d665ca07b372
2026-07-09roll init_surface() into init()Irene Knapp
Force-Push: yes Change-Id: I563da2752169ed5a6d6c6e0e712823222dcf850d
2026-07-09combine init_vulkan_entry and init_vulkan_instance into init_vulkanIrene Knapp
yay Force-Push: yes Change-Id: I65bef1f64c8e1eaef0897d9a01a2bf09cdef47f1
2026-07-09only compute queue family indices onceIrene Knapp
as a now-removed comment said, doing this repeatedly was always sus Force-Push: yes Change-Id: I419683cc979147aff1790a75aa03509b23ae561e
2026-07-09removed all the bundled-up return-value structsIrene Knapp
they are replaced with tuples and single-purpose bool wrappers Force-Push: yes Change-Id: Iabf9c1d3f9dddee160d556004b2a72b15cd6e574
2026-07-09slightly change how SwapchainFeatures is usedIrene Knapp
the goal is to make clear that it's a single-purpose value-return struct Force-Push: yes Change-Id: Idf3a3ebce2d44ea4fa2c75073e33b34c9055ca8b
2026-07-09move a lot of stuff into a new struct WindowDressingIrene Knapp
this is to group things with related lifecycles together Force-Push: yes Change-Id: If4ee44715900f3379f6589ac1e90afe62e6a2328