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.
65 lines
7.9 KiB
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|