Home | History | Annotate | Line # | Download | only in venus-protocol
      1 /* This file is generated by venus-protocol.  See vn_protocol_driver.h. */
      2 
      3 /*
      4  * Copyright 2020 Google LLC
      5  * SPDX-License-Identifier: MIT
      6  */
      7 
      8 #ifndef VN_PROTOCOL_DRIVER_HANDLES_H
      9 #define VN_PROTOCOL_DRIVER_HANDLES_H
     10 
     11 #include "vn_protocol_driver_types.h"
     12 
     13 /* VK_DEFINE_HANDLE(VkInstance) */
     14 
     15 static inline size_t
     16 vn_sizeof_VkInstance(const VkInstance *val)
     17 {
     18     return sizeof(uint64_t);
     19 }
     20 
     21 static inline void
     22 vn_encode_VkInstance(struct vn_cs_encoder *enc, const VkInstance *val)
     23 {
     24     const uint64_t id = vn_cs_handle_load_id((const void **)val, VK_OBJECT_TYPE_INSTANCE);
     25     vn_encode_uint64_t(enc, &id);
     26 }
     27 
     28 static inline void
     29 vn_decode_VkInstance(struct vn_cs_decoder *dec, VkInstance *val)
     30 {
     31     uint64_t id;
     32     vn_decode_uint64_t(dec, &id);
     33     vn_cs_handle_store_id((void **)val, id, VK_OBJECT_TYPE_INSTANCE);
     34 }
     35 
     36 /* VK_DEFINE_HANDLE(VkPhysicalDevice) */
     37 
     38 static inline size_t
     39 vn_sizeof_VkPhysicalDevice(const VkPhysicalDevice *val)
     40 {
     41     return sizeof(uint64_t);
     42 }
     43 
     44 static inline void
     45 vn_encode_VkPhysicalDevice(struct vn_cs_encoder *enc, const VkPhysicalDevice *val)
     46 {
     47     const uint64_t id = vn_cs_handle_load_id((const void **)val, VK_OBJECT_TYPE_PHYSICAL_DEVICE);
     48     vn_encode_uint64_t(enc, &id);
     49 }
     50 
     51 static inline void
     52 vn_decode_VkPhysicalDevice(struct vn_cs_decoder *dec, VkPhysicalDevice *val)
     53 {
     54     uint64_t id;
     55     vn_decode_uint64_t(dec, &id);
     56     vn_cs_handle_store_id((void **)val, id, VK_OBJECT_TYPE_PHYSICAL_DEVICE);
     57 }
     58 
     59 /* VK_DEFINE_HANDLE(VkDevice) */
     60 
     61 static inline size_t
     62 vn_sizeof_VkDevice(const VkDevice *val)
     63 {
     64     return sizeof(uint64_t);
     65 }
     66 
     67 static inline void
     68 vn_encode_VkDevice(struct vn_cs_encoder *enc, const VkDevice *val)
     69 {
     70     const uint64_t id = vn_cs_handle_load_id((const void **)val, VK_OBJECT_TYPE_DEVICE);
     71     vn_encode_uint64_t(enc, &id);
     72 }
     73 
     74 static inline void
     75 vn_decode_VkDevice(struct vn_cs_decoder *dec, VkDevice *val)
     76 {
     77     uint64_t id;
     78     vn_decode_uint64_t(dec, &id);
     79     vn_cs_handle_store_id((void **)val, id, VK_OBJECT_TYPE_DEVICE);
     80 }
     81 
     82 /* VK_DEFINE_HANDLE(VkQueue) */
     83 
     84 static inline size_t
     85 vn_sizeof_VkQueue(const VkQueue *val)
     86 {
     87     return sizeof(uint64_t);
     88 }
     89 
     90 static inline void
     91 vn_encode_VkQueue(struct vn_cs_encoder *enc, const VkQueue *val)
     92 {
     93     const uint64_t id = vn_cs_handle_load_id((const void **)val, VK_OBJECT_TYPE_QUEUE);
     94     vn_encode_uint64_t(enc, &id);
     95 }
     96 
     97 static inline void
     98 vn_decode_VkQueue(struct vn_cs_decoder *dec, VkQueue *val)
     99 {
    100     uint64_t id;
    101     vn_decode_uint64_t(dec, &id);
    102     vn_cs_handle_store_id((void **)val, id, VK_OBJECT_TYPE_QUEUE);
    103 }
    104 
    105 /* VK_DEFINE_HANDLE(VkCommandBuffer) */
    106 
    107 static inline size_t
    108 vn_sizeof_VkCommandBuffer(const VkCommandBuffer *val)
    109 {
    110     return sizeof(uint64_t);
    111 }
    112 
    113 static inline void
    114 vn_encode_VkCommandBuffer(struct vn_cs_encoder *enc, const VkCommandBuffer *val)
    115 {
    116     const uint64_t id = vn_cs_handle_load_id((const void **)val, VK_OBJECT_TYPE_COMMAND_BUFFER);
    117     vn_encode_uint64_t(enc, &id);
    118 }
    119 
    120 static inline void
    121 vn_decode_VkCommandBuffer(struct vn_cs_decoder *dec, VkCommandBuffer *val)
    122 {
    123     uint64_t id;
    124     vn_decode_uint64_t(dec, &id);
    125     vn_cs_handle_store_id((void **)val, id, VK_OBJECT_TYPE_COMMAND_BUFFER);
    126 }
    127 
    128 /* VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory) */
    129 
    130 static inline size_t
    131 vn_sizeof_VkDeviceMemory(const VkDeviceMemory *val)
    132 {
    133     return sizeof(uint64_t);
    134 }
    135 
    136 static inline void
    137 vn_encode_VkDeviceMemory(struct vn_cs_encoder *enc, const VkDeviceMemory *val)
    138 {
    139     const uint64_t id = vn_cs_handle_load_id((const void **)val, VK_OBJECT_TYPE_DEVICE_MEMORY);
    140     vn_encode_uint64_t(enc, &id);
    141 }
    142 
    143 static inline void
    144 vn_decode_VkDeviceMemory(struct vn_cs_decoder *dec, VkDeviceMemory *val)
    145 {
    146     uint64_t id;
    147     vn_decode_uint64_t(dec, &id);
    148     vn_cs_handle_store_id((void **)val, id, VK_OBJECT_TYPE_DEVICE_MEMORY);
    149 }
    150 
    151 /* VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool) */
    152 
    153 static inline size_t
    154 vn_sizeof_VkCommandPool(const VkCommandPool *val)
    155 {
    156     return sizeof(uint64_t);
    157 }
    158 
    159 static inline void
    160 vn_encode_VkCommandPool(struct vn_cs_encoder *enc, const VkCommandPool *val)
    161 {
    162     const uint64_t id = vn_cs_handle_load_id((const void **)val, VK_OBJECT_TYPE_COMMAND_POOL);
    163     vn_encode_uint64_t(enc, &id);
    164 }
    165 
    166 static inline void
    167 vn_decode_VkCommandPool(struct vn_cs_decoder *dec, VkCommandPool *val)
    168 {
    169     uint64_t id;
    170     vn_decode_uint64_t(dec, &id);
    171     vn_cs_handle_store_id((void **)val, id, VK_OBJECT_TYPE_COMMAND_POOL);
    172 }
    173 
    174 /* VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer) */
    175 
    176 static inline size_t
    177 vn_sizeof_VkBuffer(const VkBuffer *val)
    178 {
    179     return sizeof(uint64_t);
    180 }
    181 
    182 static inline void
    183 vn_encode_VkBuffer(struct vn_cs_encoder *enc, const VkBuffer *val)
    184 {
    185     const uint64_t id = vn_cs_handle_load_id((const void **)val, VK_OBJECT_TYPE_BUFFER);
    186     vn_encode_uint64_t(enc, &id);
    187 }
    188 
    189 static inline void
    190 vn_decode_VkBuffer(struct vn_cs_decoder *dec, VkBuffer *val)
    191 {
    192     uint64_t id;
    193     vn_decode_uint64_t(dec, &id);
    194     vn_cs_handle_store_id((void **)val, id, VK_OBJECT_TYPE_BUFFER);
    195 }
    196 
    197 /* VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView) */
    198 
    199 static inline size_t
    200 vn_sizeof_VkBufferView(const VkBufferView *val)
    201 {
    202     return sizeof(uint64_t);
    203 }
    204 
    205 static inline void
    206 vn_encode_VkBufferView(struct vn_cs_encoder *enc, const VkBufferView *val)
    207 {
    208     const uint64_t id = vn_cs_handle_load_id((const void **)val, VK_OBJECT_TYPE_BUFFER_VIEW);
    209     vn_encode_uint64_t(enc, &id);
    210 }
    211 
    212 static inline void
    213 vn_decode_VkBufferView(struct vn_cs_decoder *dec, VkBufferView *val)
    214 {
    215     uint64_t id;
    216     vn_decode_uint64_t(dec, &id);
    217     vn_cs_handle_store_id((void **)val, id, VK_OBJECT_TYPE_BUFFER_VIEW);
    218 }
    219 
    220 /* VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage) */
    221 
    222 static inline size_t
    223 vn_sizeof_VkImage(const VkImage *val)
    224 {
    225     return sizeof(uint64_t);
    226 }
    227 
    228 static inline void
    229 vn_encode_VkImage(struct vn_cs_encoder *enc, const VkImage *val)
    230 {
    231     const uint64_t id = vn_cs_handle_load_id((const void **)val, VK_OBJECT_TYPE_IMAGE);
    232     vn_encode_uint64_t(enc, &id);
    233 }
    234 
    235 static inline void
    236 vn_decode_VkImage(struct vn_cs_decoder *dec, VkImage *val)
    237 {
    238     uint64_t id;
    239     vn_decode_uint64_t(dec, &id);
    240     vn_cs_handle_store_id((void **)val, id, VK_OBJECT_TYPE_IMAGE);
    241 }
    242 
    243 /* VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView) */
    244 
    245 static inline size_t
    246 vn_sizeof_VkImageView(const VkImageView *val)
    247 {
    248     return sizeof(uint64_t);
    249 }
    250 
    251 static inline void
    252 vn_encode_VkImageView(struct vn_cs_encoder *enc, const VkImageView *val)
    253 {
    254     const uint64_t id = vn_cs_handle_load_id((const void **)val, VK_OBJECT_TYPE_IMAGE_VIEW);
    255     vn_encode_uint64_t(enc, &id);
    256 }
    257 
    258 static inline void
    259 vn_decode_VkImageView(struct vn_cs_decoder *dec, VkImageView *val)
    260 {
    261     uint64_t id;
    262     vn_decode_uint64_t(dec, &id);
    263     vn_cs_handle_store_id((void **)val, id, VK_OBJECT_TYPE_IMAGE_VIEW);
    264 }
    265 
    266 /* VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule) */
    267 
    268 static inline size_t
    269 vn_sizeof_VkShaderModule(const VkShaderModule *val)
    270 {
    271     return sizeof(uint64_t);
    272 }
    273 
    274 static inline void
    275 vn_encode_VkShaderModule(struct vn_cs_encoder *enc, const VkShaderModule *val)
    276 {
    277     const uint64_t id = vn_cs_handle_load_id((const void **)val, VK_OBJECT_TYPE_SHADER_MODULE);
    278     vn_encode_uint64_t(enc, &id);
    279 }
    280 
    281 static inline void
    282 vn_decode_VkShaderModule(struct vn_cs_decoder *dec, VkShaderModule *val)
    283 {
    284     uint64_t id;
    285     vn_decode_uint64_t(dec, &id);
    286     vn_cs_handle_store_id((void **)val, id, VK_OBJECT_TYPE_SHADER_MODULE);
    287 }
    288 
    289 /* VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline) */
    290 
    291 static inline size_t
    292 vn_sizeof_VkPipeline(const VkPipeline *val)
    293 {
    294     return sizeof(uint64_t);
    295 }
    296 
    297 static inline void
    298 vn_encode_VkPipeline(struct vn_cs_encoder *enc, const VkPipeline *val)
    299 {
    300     const uint64_t id = vn_cs_handle_load_id((const void **)val, VK_OBJECT_TYPE_PIPELINE);
    301     vn_encode_uint64_t(enc, &id);
    302 }
    303 
    304 static inline void
    305 vn_decode_VkPipeline(struct vn_cs_decoder *dec, VkPipeline *val)
    306 {
    307     uint64_t id;
    308     vn_decode_uint64_t(dec, &id);
    309     vn_cs_handle_store_id((void **)val, id, VK_OBJECT_TYPE_PIPELINE);
    310 }
    311 
    312 /* VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout) */
    313 
    314 static inline size_t
    315 vn_sizeof_VkPipelineLayout(const VkPipelineLayout *val)
    316 {
    317     return sizeof(uint64_t);
    318 }
    319 
    320 static inline void
    321 vn_encode_VkPipelineLayout(struct vn_cs_encoder *enc, const VkPipelineLayout *val)
    322 {
    323     const uint64_t id = vn_cs_handle_load_id((const void **)val, VK_OBJECT_TYPE_PIPELINE_LAYOUT);
    324     vn_encode_uint64_t(enc, &id);
    325 }
    326 
    327 static inline void
    328 vn_decode_VkPipelineLayout(struct vn_cs_decoder *dec, VkPipelineLayout *val)
    329 {
    330     uint64_t id;
    331     vn_decode_uint64_t(dec, &id);
    332     vn_cs_handle_store_id((void **)val, id, VK_OBJECT_TYPE_PIPELINE_LAYOUT);
    333 }
    334 
    335 /* VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler) */
    336 
    337 static inline size_t
    338 vn_sizeof_VkSampler(const VkSampler *val)
    339 {
    340     return sizeof(uint64_t);
    341 }
    342 
    343 static inline void
    344 vn_encode_VkSampler(struct vn_cs_encoder *enc, const VkSampler *val)
    345 {
    346     const uint64_t id = vn_cs_handle_load_id((const void **)val, VK_OBJECT_TYPE_SAMPLER);
    347     vn_encode_uint64_t(enc, &id);
    348 }
    349 
    350 static inline void
    351 vn_decode_VkSampler(struct vn_cs_decoder *dec, VkSampler *val)
    352 {
    353     uint64_t id;
    354     vn_decode_uint64_t(dec, &id);
    355     vn_cs_handle_store_id((void **)val, id, VK_OBJECT_TYPE_SAMPLER);
    356 }
    357 
    358 /* VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet) */
    359 
    360 static inline size_t
    361 vn_sizeof_VkDescriptorSet(const VkDescriptorSet *val)
    362 {
    363     return sizeof(uint64_t);
    364 }
    365 
    366 static inline void
    367 vn_encode_VkDescriptorSet(struct vn_cs_encoder *enc, const VkDescriptorSet *val)
    368 {
    369     const uint64_t id = vn_cs_handle_load_id((const void **)val, VK_OBJECT_TYPE_DESCRIPTOR_SET);
    370     vn_encode_uint64_t(enc, &id);
    371 }
    372 
    373 static inline void
    374 vn_decode_VkDescriptorSet(struct vn_cs_decoder *dec, VkDescriptorSet *val)
    375 {
    376     uint64_t id;
    377     vn_decode_uint64_t(dec, &id);
    378     vn_cs_handle_store_id((void **)val, id, VK_OBJECT_TYPE_DESCRIPTOR_SET);
    379 }
    380 
    381 /* VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout) */
    382 
    383 static inline size_t
    384 vn_sizeof_VkDescriptorSetLayout(const VkDescriptorSetLayout *val)
    385 {
    386     return sizeof(uint64_t);
    387 }
    388 
    389 static inline void
    390 vn_encode_VkDescriptorSetLayout(struct vn_cs_encoder *enc, const VkDescriptorSetLayout *val)
    391 {
    392     const uint64_t id = vn_cs_handle_load_id((const void **)val, VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT);
    393     vn_encode_uint64_t(enc, &id);
    394 }
    395 
    396 static inline void
    397 vn_decode_VkDescriptorSetLayout(struct vn_cs_decoder *dec, VkDescriptorSetLayout *val)
    398 {
    399     uint64_t id;
    400     vn_decode_uint64_t(dec, &id);
    401     vn_cs_handle_store_id((void **)val, id, VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT);
    402 }
    403 
    404 /* VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool) */
    405 
    406 static inline size_t
    407 vn_sizeof_VkDescriptorPool(const VkDescriptorPool *val)
    408 {
    409     return sizeof(uint64_t);
    410 }
    411 
    412 static inline void
    413 vn_encode_VkDescriptorPool(struct vn_cs_encoder *enc, const VkDescriptorPool *val)
    414 {
    415     const uint64_t id = vn_cs_handle_load_id((const void **)val, VK_OBJECT_TYPE_DESCRIPTOR_POOL);
    416     vn_encode_uint64_t(enc, &id);
    417 }
    418 
    419 static inline void
    420 vn_decode_VkDescriptorPool(struct vn_cs_decoder *dec, VkDescriptorPool *val)
    421 {
    422     uint64_t id;
    423     vn_decode_uint64_t(dec, &id);
    424     vn_cs_handle_store_id((void **)val, id, VK_OBJECT_TYPE_DESCRIPTOR_POOL);
    425 }
    426 
    427 /* VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence) */
    428 
    429 static inline size_t
    430 vn_sizeof_VkFence(const VkFence *val)
    431 {
    432     return sizeof(uint64_t);
    433 }
    434 
    435 static inline void
    436 vn_encode_VkFence(struct vn_cs_encoder *enc, const VkFence *val)
    437 {
    438     const uint64_t id = vn_cs_handle_load_id((const void **)val, VK_OBJECT_TYPE_FENCE);
    439     vn_encode_uint64_t(enc, &id);
    440 }
    441 
    442 static inline void
    443 vn_decode_VkFence(struct vn_cs_decoder *dec, VkFence *val)
    444 {
    445     uint64_t id;
    446     vn_decode_uint64_t(dec, &id);
    447     vn_cs_handle_store_id((void **)val, id, VK_OBJECT_TYPE_FENCE);
    448 }
    449 
    450 /* VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore) */
    451 
    452 static inline size_t
    453 vn_sizeof_VkSemaphore(const VkSemaphore *val)
    454 {
    455     return sizeof(uint64_t);
    456 }
    457 
    458 static inline void
    459 vn_encode_VkSemaphore(struct vn_cs_encoder *enc, const VkSemaphore *val)
    460 {
    461     const uint64_t id = vn_cs_handle_load_id((const void **)val, VK_OBJECT_TYPE_SEMAPHORE);
    462     vn_encode_uint64_t(enc, &id);
    463 }
    464 
    465 static inline void
    466 vn_decode_VkSemaphore(struct vn_cs_decoder *dec, VkSemaphore *val)
    467 {
    468     uint64_t id;
    469     vn_decode_uint64_t(dec, &id);
    470     vn_cs_handle_store_id((void **)val, id, VK_OBJECT_TYPE_SEMAPHORE);
    471 }
    472 
    473 /* VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent) */
    474 
    475 static inline size_t
    476 vn_sizeof_VkEvent(const VkEvent *val)
    477 {
    478     return sizeof(uint64_t);
    479 }
    480 
    481 static inline void
    482 vn_encode_VkEvent(struct vn_cs_encoder *enc, const VkEvent *val)
    483 {
    484     const uint64_t id = vn_cs_handle_load_id((const void **)val, VK_OBJECT_TYPE_EVENT);
    485     vn_encode_uint64_t(enc, &id);
    486 }
    487 
    488 static inline void
    489 vn_decode_VkEvent(struct vn_cs_decoder *dec, VkEvent *val)
    490 {
    491     uint64_t id;
    492     vn_decode_uint64_t(dec, &id);
    493     vn_cs_handle_store_id((void **)val, id, VK_OBJECT_TYPE_EVENT);
    494 }
    495 
    496 /* VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool) */
    497 
    498 static inline size_t
    499 vn_sizeof_VkQueryPool(const VkQueryPool *val)
    500 {
    501     return sizeof(uint64_t);
    502 }
    503 
    504 static inline void
    505 vn_encode_VkQueryPool(struct vn_cs_encoder *enc, const VkQueryPool *val)
    506 {
    507     const uint64_t id = vn_cs_handle_load_id((const void **)val, VK_OBJECT_TYPE_QUERY_POOL);
    508     vn_encode_uint64_t(enc, &id);
    509 }
    510 
    511 static inline void
    512 vn_decode_VkQueryPool(struct vn_cs_decoder *dec, VkQueryPool *val)
    513 {
    514     uint64_t id;
    515     vn_decode_uint64_t(dec, &id);
    516     vn_cs_handle_store_id((void **)val, id, VK_OBJECT_TYPE_QUERY_POOL);
    517 }
    518 
    519 /* VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer) */
    520 
    521 static inline size_t
    522 vn_sizeof_VkFramebuffer(const VkFramebuffer *val)
    523 {
    524     return sizeof(uint64_t);
    525 }
    526 
    527 static inline void
    528 vn_encode_VkFramebuffer(struct vn_cs_encoder *enc, const VkFramebuffer *val)
    529 {
    530     const uint64_t id = vn_cs_handle_load_id((const void **)val, VK_OBJECT_TYPE_FRAMEBUFFER);
    531     vn_encode_uint64_t(enc, &id);
    532 }
    533 
    534 static inline void
    535 vn_decode_VkFramebuffer(struct vn_cs_decoder *dec, VkFramebuffer *val)
    536 {
    537     uint64_t id;
    538     vn_decode_uint64_t(dec, &id);
    539     vn_cs_handle_store_id((void **)val, id, VK_OBJECT_TYPE_FRAMEBUFFER);
    540 }
    541 
    542 /* VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass) */
    543 
    544 static inline size_t
    545 vn_sizeof_VkRenderPass(const VkRenderPass *val)
    546 {
    547     return sizeof(uint64_t);
    548 }
    549 
    550 static inline void
    551 vn_encode_VkRenderPass(struct vn_cs_encoder *enc, const VkRenderPass *val)
    552 {
    553     const uint64_t id = vn_cs_handle_load_id((const void **)val, VK_OBJECT_TYPE_RENDER_PASS);
    554     vn_encode_uint64_t(enc, &id);
    555 }
    556 
    557 static inline void
    558 vn_decode_VkRenderPass(struct vn_cs_decoder *dec, VkRenderPass *val)
    559 {
    560     uint64_t id;
    561     vn_decode_uint64_t(dec, &id);
    562     vn_cs_handle_store_id((void **)val, id, VK_OBJECT_TYPE_RENDER_PASS);
    563 }
    564 
    565 /* VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache) */
    566 
    567 static inline size_t
    568 vn_sizeof_VkPipelineCache(const VkPipelineCache *val)
    569 {
    570     return sizeof(uint64_t);
    571 }
    572 
    573 static inline void
    574 vn_encode_VkPipelineCache(struct vn_cs_encoder *enc, const VkPipelineCache *val)
    575 {
    576     const uint64_t id = vn_cs_handle_load_id((const void **)val, VK_OBJECT_TYPE_PIPELINE_CACHE);
    577     vn_encode_uint64_t(enc, &id);
    578 }
    579 
    580 static inline void
    581 vn_decode_VkPipelineCache(struct vn_cs_decoder *dec, VkPipelineCache *val)
    582 {
    583     uint64_t id;
    584     vn_decode_uint64_t(dec, &id);
    585     vn_cs_handle_store_id((void **)val, id, VK_OBJECT_TYPE_PIPELINE_CACHE);
    586 }
    587 
    588 /* VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate) */
    589 
    590 static inline size_t
    591 vn_sizeof_VkDescriptorUpdateTemplate(const VkDescriptorUpdateTemplate *val)
    592 {
    593     return sizeof(uint64_t);
    594 }
    595 
    596 static inline void
    597 vn_encode_VkDescriptorUpdateTemplate(struct vn_cs_encoder *enc, const VkDescriptorUpdateTemplate *val)
    598 {
    599     const uint64_t id = vn_cs_handle_load_id((const void **)val, VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE);
    600     vn_encode_uint64_t(enc, &id);
    601 }
    602 
    603 static inline void
    604 vn_decode_VkDescriptorUpdateTemplate(struct vn_cs_decoder *dec, VkDescriptorUpdateTemplate *val)
    605 {
    606     uint64_t id;
    607     vn_decode_uint64_t(dec, &id);
    608     vn_cs_handle_store_id((void **)val, id, VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE);
    609 }
    610 
    611 /* VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion) */
    612 
    613 static inline size_t
    614 vn_sizeof_VkSamplerYcbcrConversion(const VkSamplerYcbcrConversion *val)
    615 {
    616     return sizeof(uint64_t);
    617 }
    618 
    619 static inline void
    620 vn_encode_VkSamplerYcbcrConversion(struct vn_cs_encoder *enc, const VkSamplerYcbcrConversion *val)
    621 {
    622     const uint64_t id = vn_cs_handle_load_id((const void **)val, VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION);
    623     vn_encode_uint64_t(enc, &id);
    624 }
    625 
    626 static inline void
    627 vn_decode_VkSamplerYcbcrConversion(struct vn_cs_decoder *dec, VkSamplerYcbcrConversion *val)
    628 {
    629     uint64_t id;
    630     vn_decode_uint64_t(dec, &id);
    631     vn_cs_handle_store_id((void **)val, id, VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION);
    632 }
    633 
    634 #endif /* VN_PROTOCOL_DRIVER_HANDLES_H */
    635