summary refs log tree commit diff
AgeCommit message (Collapse)Author
3 daysload a nontrivial model and render it with a texture HEAD mainIrene Knapp
yay Force-Push: yes Change-Id: Icb715692286c8560532ab73d32a49be8f485d790
5 daysdepth bufferIrene Knapp
yay Change-Id: I7795e22712f27b262cde807a942ddec342d07c55 Force-Push: yes
6 daysdraw a second squareIrene Knapp
in order to test the depth buffer, which does not yet exist Force-Push: yes Change-Id: Ibb4c279ff8b83ad9c0c37897f623631c4e342fb0
6 dayspull the shader data stuff into its own fileIrene Knapp
separate from the linear algebra stuff Force-Push: yes Change-Id: I26fc7ac596f304fa35ca7a4d0e1349d4fa0685ee
6 daysdraw the imageIrene Knapp
wow yay :) Force-Push: yes Change-Id: I7053ec3a7ed7b46e9c9d1260fd0f73b398b798af
6 daysload a texture imageIrene Knapp
also refactor buffer management a little this doesn't yet draw the texture Change-Id: Id2efa761223a588bf599041ac525c3b988f0113b Force-Push: yes
6 daysadd Transformation::look_at()Irene Knapp
now we have real camera behavior. yay! Force-Push: yes Change-Id: I291d0cce0f2624e9bff8356c8dbe2aabc49599e2
8 daysadd an fps counterIrene Knapp
Force-Push: yes Change-Id: I66313a981a19ca65fa68463e89e093da14fde41e
8 daysit 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
11 daysprint error messages from glslangIrene Knapp
it's quite annoying otherwise, the build would fail with no explanation Force-Push: yes Change-Id: Ia5405c1f0e63f778da49ca1c85139f5e785fde29
12 daysskip dotfiles while compiling shadersIrene Knapp
Force-Push: yeah of course Change-Id: I2b8937b53e0c329f20ed51a9806ca2c085ecf9f0
12 daysuse an index buffer now, and draw two trianglesIrene Knapp
Force-Push: yes Change-Id: I2c58bad402908fa36caf271da3cae78e43ef3110
12 daysdon'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
12 daysabstract buffer managementIrene Knapp
Force-Push: yes Change-Id: I3276e65f2ef29199b57a748a321998747b607b22
14 daysallocate 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
14 daysdon't draw when minimized (nice and easy)Irene Knapp
Force-Push: yes Change-Id: I11c96044372dbc9fb10ad5af5d22e72a42080ca7
14 daysokay, 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
2026-07-08simplify drop()Irene Knapp
Force-Push: yes Change-Id: I52cf7db5a61899c54ceecd0f86acbef13474d929
2026-07-07reorganize init logic for clear lifecyclesIrene Knapp
yeahhhhhh, it wasn't viable to do this while following that part of the tutorial, but it was always gonna be needed anyway, now all the various pieces of initialization are associated functions instead of methods, which makes it dramatically easier to see what the data dependencies are Change-Id: Ie63272945430e27d1026ad3cb724d8ac2d2f6047 Force-Push: yes of course
2026-07-07fix string lifetime issueIrene Knapp
yeahhhhhhhhhh Force-Push: yes Change-Id: I30a7cc5bd35d22beb81c7bef8013b636e74ee5e2
2026-07-06add a build.rs that calls glslangIrene Knapp
Force-Push: yes Change-Id: I5a565f3ad343a36ffe17436b337f524805d072f7
2026-07-06render a few frames at onceIrene Knapp
Force-Push: yes Change-Id: Ibf09815b6d64c80242d623a1a5f387d6e7166f67
2026-07-05TRIANGLEIrene Knapp
Force-Push: yes Change-Id: I3e3aa50c5de4b2ccb0719663e029aadb3056dc70
2026-07-05successfully instantiate the render pipelineIrene Knapp
in the words of the tutorial, "We are already getting quite close to seeing something pop up on the screen"..... it took THREE DAYS. encouragement is great and all, but perhaps don't trivialize that effort Force-Push: yes Change-Id: Icf7fd651dbf12cae0320f98d1622fad5fcd3fd0d
2026-07-04load compiled SPIR-V bytecode (yay)Irene Knapp
no way to build it except by hand, as-yet. the tutorial doesn't cover that, we'll need to circle back and write a build.rs Force-Push: yes Change-Id: I2b489381f95b4b7505862caa236dea1c60cd9c1a
2026-07-04create swapchain images and image viewsIrene Knapp
Force-Push: yes Change-Id: If540bc5a398ff2b26e706b0c4fe85de4bb932232
2026-07-04create a swapchain (when supported)Irene Knapp
lots of decisions about modes in here, which will have far-reaching effects Force-Push: yes Change-Id: Ia73ccbd0bce8933970d7379acc09d5865dc4c2b5
2026-07-04add a Vulkan surface, and a presentation queue pointing to itIrene Knapp
the unique queue family index thing here is suggested by the kyelmayes tutorial Force-Push: yes Change-Id: Ib03700d2c77016293934eec5e2c37ec157906ebb
2026-07-04connect to a GPU ("device")Irene Knapp
also refactor Error into its own file, it was unwieldy. it really should have been there from the start. for the first time, this compiles without warnings! yay! alas, this is merely the first hump of the camel Force-Push: yes Change-Id: Ib6ec835448af469ccb259776b78a27bbc157c8f0
2026-07-03logic to select a GPUIrene Knapp
this is elaborate, but eh, it's worth it to provide sensible behavior Force-Push: yes Change-Id: Ie9c947b070caedbcc4503aa2b1f520059713a6c5
2026-07-03okay, we get debug messages for instance creation/destruction nowIrene Knapp
Force-Push: yes Change-Id: If47236337d13a1c565fb2a5423761f5896bfef45
2026-07-03Vulkan debug messager (yay)Irene Knapp
doesn't deal yet with the corner case of reporting errors to do with instance creation and destruction Force-Push: yes Change-Id: I6094d960081d8cd3123ae6fe46f77cb133948f39
2026-07-03oops the state thing works now, and added portability flagsIrene Knapp
Force-Push: yes Change-Id: Iabb06b6158117fc4723dc0fb0852da53c277773c
2026-07-03better managing of stateIrene Knapp
Force-Push: yes Change-Id: I5a6982e0f8d06ff173fd31948dbd0f579b3d38ba
2026-07-02create Vulkan instanceIrene Knapp
Change-Id: I8fdc0c989e97ec872714e755eca4255e3fb0830a Force-Push: yes
2026-07-02initialIrene Knapp
Force-Push: yes Change-Id: I8ad20ee63db338119a3f54de36b4f8c6fc1feb52