You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Trac3r-rust/notes/VKProcessor.txt

65 lines
7.9 KiB

Content-Type: text/x-zim-wiki
Wiki-Format: zim 0.4
Creation-Date: 2020-01-21T00:01:37-08:00
====== VKProcessor ======
===== Details =====
Vk Processors is a do_all class for interaction with the render window. And the vulkan state and backend. Unfortunately this explodes out to managing all of the textures, kernels, shaders, and fonts. VKProcessor gives out handles to these stored data which can then be used in other parts of the program.
[[https://www.draw.io/?lightbox=1&highlight=0000ff&edit=_blank&layers=1&nav=1&title=vkprocessor.drawio#R%3Cmxfile%20pages%3D%222%22%3E%3Cdiagram%20id%3D%22eBoc7Yustm6TUbQq-vnT%22%20name%3D%22VKProcessor%20Overview%22%3E7V1bd5s4EP41Oaf74ByEuD4mzqXppt2cOKfbPspYttli8HLJpb9%2BJYMwIBljG4y8SR5aEBK2Zr75NDO6%2BAwOF6%2B3IVrOvwYT7J2pyuT1DF6dqSqAlkL%2BoyVvWQkwQFoyC91JVrYuGLm%2FcVaYNZwl7gRHpYpxEHixuywXOoHvYyculaEwDF7K1aaBV%2F7UJZpln6isC0YO8jBX7W93Es%2FZtyN%2F6yefsTubx9yjBWL1s4JojibBS6EIXp%2FBYRgEcXq1eB1ijwqQiSZtd7Phaf7dQuzHTRqolwvXhImdzMCvaHb%2Fz%2F3t1esAZK95Rl6SdXqI%2FGcUPeHXOAnxmWp45O2X45BczehV3yUrUcZvTEVhkPgTTLuokMcvczfGoyVy6NMXgkpSNo8XHrkDeeuiyFj3cRjj10JRJsJbHCxwHL6RKtlTjek3w%2FQAQOVcT4teChhh2J8X0aFlhSjD5Sx%2F%2FVpv5CJT3S5qVDeo8W5BIf6hxLISdbuqRGakRRXax1Uh3KDCm4D080ODZQ2anAaBDGZobtBh7%2FLK%2B7ymLZWXliqQFjRakFbwc3nvPH02tLflzWOifPls%2F%2F4%2BMCEnFjwh4292G4TxPJgFPvKu16WXZcGt69wHwTIT1z84jt8yZwIlcVAWJn514x%2BF65%2F0VQQ66d3Va%2Fbm1c0bu%2FFJf3%2BsKioKZAVpS6ibrGDdeHVXav2AQ5eIDYdZYRSjML6gPgop8AMfs7Ibl0oxazhhNRwPRZHrpIVZlVpoREESOrgOq1bmUKFwhuOaitBOK1Ld1EItxB6K3eey79S%2BjVmbeDJEC9y7oQ3UioMAVAEtKQJD687OACcV6e2sbGP6Fgvr35jshsbE0CuLMdmcMV2F6AWNPXzgmDUlYh0GXhCu2sIJwtbUWaklDH7hwhPDsfB42pLxwarxaYAzPpFLoFodCZiNsgUBXzhOskiIdgUiPqJdKvvYJdjNLvc3KOaJbB%2BdFKkMin3v4ugULJZJfKompVUcbRMIIiWR39jGcCbWuM6J%2BCvySZh7guZ0rgCzYlKato87eYCl6U0tDcplaTwMLpPplEhEVYYkZEauj8Oo7zBZzgDcQ2PsPQSRG7uBTx0ighoKpUvKC65D4F%2BpsHAnk5W9IM%2BdCVtcZA%2Fymi1wj2mVuSfnogL35DxTivCtrshHNTbwe%2F%2BRRzUlomu9M7Vxcoxc8Gl%2BFv2d1h0c2NjBkYt24QYHR47oW9Wl81YEEyxUXn%2Fi0KfTZVVi%2F%2BSQp%2B7KV1QIsok83CX2yFj2R%2B%2FChZUcoqb3Llztf%2BMKVohH6Y542ETqiRGP1msWa0%2Bd2rZRdu8twzque8%2B0eGppXiiYDqO8OYqRBL4WqIwzmtWQCrvzTCGfyvv%2B6yEMHBxFQdi7xAZGWWLNJ6AsRT9cZMLEuKGdHqWU6UTdKTO%2BznsXk%2BONM99iGfL0Iq7XW55OPCei9Kn6PecedwpNjjkn0hQZtXMQkiCDD%2FBHy9CVYMwZEH%2F7HBiFP1hiVGALJhq7csfFout1Qr8NPu2dTs3TpFPDOj06PUDzfdCpABmnQKeCFVErN%2F5EOFW0eOO4nKqeHqeeK7AS9hqWscW%2Bti%2BS6oJuBWugToJu7dOj293yW73TbdPVcZLRLb84ji7kl55n9b5pVrCA%2FjPy6UymqjzRNPwIe9PexWiwVAhLoojSTqIJUbUzufFpuos4Rs58QXqZbT5Q2Ly8bNIToU4ova4SUICfv7jCMXK9%2FheMc8ISeUIiYcHOoMZH5hKaqAYqeU5bkOY8ronyLvjdYpGuSJPMQjnhGWbfFsoPqLJYKCcs2FBY3VkoPwUhoYVainKuAk21dHP1r1WWoincR3RUixUsIv2edk8aS90iRE1vLMSuLDfvk3yWu0V4oLHwOrNklXeH88WVTmFxpULEQP4NfI92L4mIEFVlTK%2FjOX3giHe%2FRXO0pJcO8rwgibcLfVlIDGSNCrmCVlYOVTfIqSwk2D4%2F2ZUSeN%2F6kbzYxc9UtIxZD8HyPAjd31SdLKRuQZCA3yDNCxIK5Jjvt20%2FKJZoo6HaMF8yoFsNK1k0qG2b9Ot9q6FQ%2FrDxVGD2xvaSKaumpGforVBhGbh%2BHBXe%2FEAL1hCu7iIaWFoRg3x9vbY%2BuUi%2FwRrBeVcOADUfO8qD8v%2FplHZzIKtyALmygH6gKfVAri64r69uWHpN9Y5gr8uDcvPdw7z1JaL7wbzCv%2FpObJ1tj95U3bLqqncDcsinuoR7m2Tz%2FVRzX9%2BPuWjtT5XxsfQJONEDgRfNp%2FpFklTbONxEPJPPb7jjqVhES6J55XOjxKRA0eqplNxU3doivcLKoRwUd10ts66F2daZZLUpZRb0rAv0zMp2Y1aO3QbVJGI1mk17nrWqoUn%2BfJnKi1LJcC9qizJNnjLfDTplwRIjceYOgnPbUNZ%2FbFTbFVoAaOe2XXgRKH8MiZStwlPtqLiz2sDdpkUSBCl7RfxrIJtlIKtgZyDvz4mM6rZyIgOGJDgGnBej70mK%2BRRBnlRUjsuKFj%2F3907QKQuW1DJZQVtIZTsDi4u8z21TtfM%2F3egKZj%2BDkfXn%2BMv0zrx9%2B%2FF7Ppx8%2BRfkM48yBOVNE6w7rv%2FtdrGZYLWZWNCtJ0gPS6zzs%2BOjOZqU41QOGr1HV9UwlfmO24JUTTtcjkK1qr1uRNsrdbvjSVAF88kyWmvbaexliGXX0HTan1s4TOWCgTk7C4AdBXD37en68eZieM2ekA8abz4SZpgeHDBZHcbtOtFDdnDAI05lKDgL59OF59FDskn%2FHLpP9Cw7cyCkTUhB%2F2cODLRq%2Bk10BozIWttYKirUHM95vOa%2BPtxff73%2B9nTxdPfXt2bqe0z8mLg26UKPKzwVaCuKw8ShXgCRuzOnfWPqWxKvKAVtpsFnnC4XmeCp66en%2BKxm7onko9VN33oFNhmqNQBNGwIFaloldgRAcHrNcfUsOBq9oOiC8Ix%2FkyBfwzCIUrFdkCp%2BEC6Qt66ws2Ef8iHsPaSqf9ibNhFL4dunHyJrBz7dYuKHEI%2BNaJweWzWlLejPAay%2B4cphoVS36dQtrn99206VEy2joa3oZle20mQ424MU6eYF5lFydJi7mqkiJyF6cf0ZZUDSSoKhq3pIRP9Dl2BNXCtqyuxrd02FeDWeIX9CdZU4cwnV1ti6ulNb%2B85i7mbk3gGntDuOKserOcgoVxiK49AdJ7GUjiJQbKtvvfEL%2BNrR2ygNivbR2TNbSOwni3E67kmnOSDY1nRkzbWaN90tVN4o0u0hbvYlJcl9DnKdMSatzk03TXcOqin5%2FFy%2FIyU4VVHQJz0eJMuF83gw98ZDZYy2q8jqGg%2BntwFbmoSd6ORTyZLdtd%2F7I2VXP55Dq7zV29TKRs%2FvbTnu2C44kfUjr%2FOR1%2Bk%2Fr7PFcIBgu%2FpxszyCHzN591ke4omWlSYZ2TUJQd95xqdehY3NrjsdNtnpI13wwchCkuDDgGUll9fPAFjZhtw0EjHsOuxUXtr1Kpw2FmgfHydyLYjeghNjT5zUc4xahd%2FeSCG361%2BUTquvf5sbXv8H%3C%2Fdiagram%3E%3Cdiagram%20id%3D%22nTcplhR32HdN3I8OFsts%22%20name%3D%22Drawable%20Flow%22%3E7V1bc5s4FP41nmkf7OF%2Beazjpk2bzmaazG7ztCODbKvFyAU5jvPrVwJhDMI1SYyleN3JNHAAGb7v3HR0cHrmxfzxUwIWs284hFHP0MLHnjnqGYah%2Bzr9xSTrXEIFXDJNUMhlpeAWPUEu1Lh0iUKYVk4kGEcELarCAMcxDEhFBpIEr6qnTXBU%2FdQFmEJBcBuASJT%2Bg0Iyy6WerZXyzxBNZ8Un6xo%2FMgfFyVyQzkCIV1si82PPvEgwJvnW%2FPECRgy9ApfrH7%2BeroaO9hTGiy%2B%2FJy6Jrz%2F188Eun3PJ5hESGJMXD73%2B7ST3lu3Bp6t1%2BvDl6%2Bzrw5pfoj2AaMnxuoOPhD8vWRcgpis0j0BM94YTHJNbfkSn%2ByBC05huB%2FTeYEIFDzAhiOL%2FgR8geEGlwQxF4TVY4yV7gpSA4FexN5zhBD3RYUHEx6SHE8JVyXAqZ9yyK6lYo9IEpvScmwIWvSb6Bh4rJ16DlHBBgKMILFI03jzGHCRTFA8xIXjOT%2BLQ0MeBjzVd2kOEvtEOalcQzyFJ1vQ6PorPQecWZRaWsirVU3e4bLalmp7DrYJbxHQzcsk63eDEP0MJdEEJesaQ2RqCzNg%2BMJNdL6CgFYSpCmMrwb%2FgBY4wpX8U41xNUBTVRIWmRHBCdupJugABiqfX2Tkjq5R850AwEabXTqLMFmcoDGHMOMYEEJATythbYBSTDCl7SH8onhfawO7Z9MYv6L5e7tMfdnpCLnBMnwWgjFtItWUFmca0U4Td5iUqAmfecNoRb3RFvNFAfI3jCGXc5RwXDlR%2FEcFzSlUES0bvGOGjvi6wboqsmw0MR2AMoxucIoIwGz%2FJz60xL4tc22hp1R1xa%2B4wajr6DIfvmEG%2FP9t2Z%2FQ7LZ16Z7ZtCfzfLhJERKbPsb272G5rsmO7fY7tHdm%2FpXZsd86xvTNyZcd29xzbZdq29NjuCfzf4Gh9juxHjOyWZkmO7P45sndk%2FZ7akV0Xi3bn0H4odmWHdn1XMe4c24%2FCv%2FTYrovGDMMpLII3hWSGpzgG0cdSSoFexiEMOczlOdc4M1Zmqz8hIWsencGSYBafybyI3fARkR%2Fscgp%2Fvne%2FdWRUhORsZ13sxPR5ty5iu%2Ffbx8rLsr3iuvz52EO9ID5TYPAyCeCfEOSlL5qOTOGfNEH3m1UhgREg6KF6e4cnWqzQjRKwyszFcCKm5OOEbk1zdT9VST1nnYEF21wkOIApxXy4miECb6nDYeJVAhZVzR3TzHKa6f9fS5KHvUzeVR5o1pdvTFPwGJbR5DEK4eE1yZLpMort%2B4r72OMy%2BtpA04yK1xgY5h7Hke3dwARR2Nik5TjepK0zMaU6E%2FvNqYBWZd%2FeQ37XPPtvg2fnrfPsyibafhtEu%2BqkgVpLoqtpoC47DfRaEm25UokWi3nflzGhMY4K%2F87TF0MbwQmK8xlzi6zqMsHzd1fz6Xvx0Ds2QVwm8N8A4yRsOmHBp%2BZNx1hB7r2gmFW125OvdZWXuZ5fycv6RtPaW1NipneXmIk1OpbiU8llAubi5F0JIG2ntobpiQWvxhmx3xWMhljwUh9Gx1IORrG0pD6MrqEcjMYbhNHTlIOxqUGpnvHE4QfWAkz3ggikKQqa0HphCiFitYWF3YBFIWudF%2FBPuGFVz5IKy61S4Tg1iPPMhl9VoiwM5Dt7BsozH2GgjK7NY7%2BCQbHF6P%2FJoGceiEFhoK4ZFLuDaO4puyKomqSm0spXKAW%2FoIu%2B3m5e0%2BjM2YvdSHR6QgWfQcwWF5WMmWw%2BW5lRmFbLGUV3OIqdP3f5fE5xLHVTRTTFqfclzvyzylD2dcNXEEtxqnuXrU9rXEHD16G5vXbdM8wQQG%2FCconqQjc94gQeHE%2B6VeUq%2BK4hGfvihva9xfUawCdeAINGwMeebdlddl41KbzV9NLUcUHXBXzPBdpnFWhNbjf7C7ROs34cp0Bb3OaxCrRoPj254qxje3ULVqA8a4olCB6zsuT0NMJVX0i85Mcrqf0KJ%2BE62y5iWrZU19lYXziA62TpTZMLDJhhPddvojglIKZzeUWdp13k1iq5TnFCv5Xun4zvVDDXl9oX8LIGkIGhlPO02rZ02Tu040jO0zszfSymJYdJ%2F8z00ZiWOpcsynRnpo%2FAtNS2ruI2txKkTzCGCQq2ysvaFXv7csISoYNmTDb0QqspY%2FKMsek4HWZMNPFpqE0PTN%2Bxbd01LN10fckZlCXWc0pmGicl2zQ1zB6CaMm%2B4Yx%2BLJ9IvHIeoRSbys08LLFoU9JXlG9O0Kxq8xB94G3blC7bqJ7XC8LfPgxBOsvI0A8D%2FBvrIzFrvW2uaw5c39Q107I8w7Vr75i27SqpD9sXjLHjthJLLPts%2FCr1m2DO7Cz%2FPzPW3GvSzeFyMoHUtWp4%2FBMGJH2d%2BXZljHat%2Fae%2Fed1LnvmJ5ZgN4jVQ1cTU8X3lMBV7LXZgqiakXr1sqACkYsMFj9iZTz%2BdHoG%2BGLBlFw4tqUWGU1h0KaK%2B4nXD4jYPvujCbfRg6y4Kr1eb9XCkwMTHFisKp5RVWZZyWVXxXTB%2FtqTd2LOawAgQoCbgrK2qpuTupngjD3Nxet%2FkvdRDVSkQxdn42wBxV4ulEqC2a2ZQFtS%2BYato71K%2F0OAk0lI%2BT93%2FhQY7vvnqSGlpw6sLp9kg7nrewDPLf1bN6qSnNVIbC07C5Np%2BWUzeOyzN5Ha%2Bk3FC%2Fa2stdhU2NqKgc%2FW9lJrc9qu%2BJtSu3gccX5%2Bgi2RtqF2cHOMs7m90tzafn1mXmiUZm47X944sbUE069aXNEBfASTo7vln7fLV4fLvxJofvwP%3C%2Fdiagram%3E%3C%2Fmxfile%3E|VK]]
[[./vkprocessor.drawio]]
--------------------
===== Data =====
**Borrowed:**
instance
device
qeueue
**Owns:**
[[CanvasState]]
[[CompuState]]
--------------------
===== CanvasState =====
<[[CanvasState]]>
* Is used for storage of texture and image buffers in addition to vertex buffers
* Also contains logic for writing the stored buffers to the command_buffer
===== CompuState =====
**Holds:**
* A very generic 2d compute buffer for computation
* The kernels which will compute them
2D list storage. So all kernels and buffers are indexed by integer handles
compute_commands is a fairly benign function which takes the 3 types of