~mmach/netext73/mesa-ryzen

« back to all changes in this revision

Viewing changes to src/virtio/venus-protocol/vn_protocol_driver_pipeline.h

  • Committer: mmach
  • Date: 2023-11-02 21:31:35 UTC
  • Revision ID: netbit73@gmail.com-20231102213135-18d4tzh7tj0uz752
2023-11-02 22:11:57

Show diffs side-by-side

added added

removed removed

Lines of Context:
1532
1532
    vn_encode_VkFlags(enc, &val->colorWriteMask);
1533
1533
}
1534
1534
 
 
1535
/* struct VkPipelineColorWriteCreateInfoEXT chain */
 
1536
 
 
1537
static inline size_t
 
1538
vn_sizeof_VkPipelineColorWriteCreateInfoEXT_pnext(const void *val)
 
1539
{
 
1540
    /* no known/supported struct */
 
1541
    return vn_sizeof_simple_pointer(NULL);
 
1542
}
 
1543
 
 
1544
static inline size_t
 
1545
vn_sizeof_VkPipelineColorWriteCreateInfoEXT_self(const VkPipelineColorWriteCreateInfoEXT *val)
 
1546
{
 
1547
    size_t size = 0;
 
1548
    /* skip val->{sType,pNext} */
 
1549
    size += vn_sizeof_uint32_t(&val->attachmentCount);
 
1550
    if (val->pColorWriteEnables) {
 
1551
        size += vn_sizeof_array_size(val->attachmentCount);
 
1552
        size += vn_sizeof_VkBool32_array(val->pColorWriteEnables, val->attachmentCount);
 
1553
    } else {
 
1554
        size += vn_sizeof_array_size(0);
 
1555
    }
 
1556
    return size;
 
1557
}
 
1558
 
 
1559
static inline size_t
 
1560
vn_sizeof_VkPipelineColorWriteCreateInfoEXT(const VkPipelineColorWriteCreateInfoEXT *val)
 
1561
{
 
1562
    size_t size = 0;
 
1563
 
 
1564
    size += vn_sizeof_VkStructureType(&val->sType);
 
1565
    size += vn_sizeof_VkPipelineColorWriteCreateInfoEXT_pnext(val->pNext);
 
1566
    size += vn_sizeof_VkPipelineColorWriteCreateInfoEXT_self(val);
 
1567
 
 
1568
    return size;
 
1569
}
 
1570
 
 
1571
static inline void
 
1572
vn_encode_VkPipelineColorWriteCreateInfoEXT_pnext(struct vn_cs_encoder *enc, const void *val)
 
1573
{
 
1574
    /* no known/supported struct */
 
1575
    vn_encode_simple_pointer(enc, NULL);
 
1576
}
 
1577
 
 
1578
static inline void
 
1579
vn_encode_VkPipelineColorWriteCreateInfoEXT_self(struct vn_cs_encoder *enc, const VkPipelineColorWriteCreateInfoEXT *val)
 
1580
{
 
1581
    /* skip val->{sType,pNext} */
 
1582
    vn_encode_uint32_t(enc, &val->attachmentCount);
 
1583
    if (val->pColorWriteEnables) {
 
1584
        vn_encode_array_size(enc, val->attachmentCount);
 
1585
        vn_encode_VkBool32_array(enc, val->pColorWriteEnables, val->attachmentCount);
 
1586
    } else {
 
1587
        vn_encode_array_size(enc, 0);
 
1588
    }
 
1589
}
 
1590
 
 
1591
static inline void
 
1592
vn_encode_VkPipelineColorWriteCreateInfoEXT(struct vn_cs_encoder *enc, const VkPipelineColorWriteCreateInfoEXT *val)
 
1593
{
 
1594
    assert(val->sType == VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT);
 
1595
    vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT });
 
1596
    vn_encode_VkPipelineColorWriteCreateInfoEXT_pnext(enc, val->pNext);
 
1597
    vn_encode_VkPipelineColorWriteCreateInfoEXT_self(enc, val);
 
1598
}
 
1599
 
1535
1600
/* struct VkPipelineColorBlendStateCreateInfo chain */
1536
1601
 
1537
1602
static inline size_t
1538
1603
vn_sizeof_VkPipelineColorBlendStateCreateInfo_pnext(const void *val)
1539
1604
{
1540
 
    /* no known/supported struct */
 
1605
    const VkBaseInStructure *pnext = val;
 
1606
    size_t size = 0;
 
1607
 
 
1608
    while (pnext) {
 
1609
        switch ((int32_t)pnext->sType) {
 
1610
        case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT:
 
1611
            if (!vn_cs_renderer_protocol_has_extension(382 /* VK_EXT_color_write_enable */))
 
1612
                break;
 
1613
            size += vn_sizeof_simple_pointer(pnext);
 
1614
            size += vn_sizeof_VkStructureType(&pnext->sType);
 
1615
            size += vn_sizeof_VkPipelineColorBlendStateCreateInfo_pnext(pnext->pNext);
 
1616
            size += vn_sizeof_VkPipelineColorWriteCreateInfoEXT_self((const VkPipelineColorWriteCreateInfoEXT *)pnext);
 
1617
            return size;
 
1618
        default:
 
1619
            /* ignore unknown/unsupported struct */
 
1620
            break;
 
1621
        }
 
1622
        pnext = pnext->pNext;
 
1623
    }
 
1624
 
1541
1625
    return vn_sizeof_simple_pointer(NULL);
1542
1626
}
1543
1627
 
1577
1661
static inline void
1578
1662
vn_encode_VkPipelineColorBlendStateCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val)
1579
1663
{
1580
 
    /* no known/supported struct */
 
1664
    const VkBaseInStructure *pnext = val;
 
1665
 
 
1666
    while (pnext) {
 
1667
        switch ((int32_t)pnext->sType) {
 
1668
        case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT:
 
1669
            if (!vn_cs_renderer_protocol_has_extension(382 /* VK_EXT_color_write_enable */))
 
1670
                break;
 
1671
            vn_encode_simple_pointer(enc, pnext);
 
1672
            vn_encode_VkStructureType(enc, &pnext->sType);
 
1673
            vn_encode_VkPipelineColorBlendStateCreateInfo_pnext(enc, pnext->pNext);
 
1674
            vn_encode_VkPipelineColorWriteCreateInfoEXT_self(enc, (const VkPipelineColorWriteCreateInfoEXT *)pnext);
 
1675
            return;
 
1676
        default:
 
1677
            /* ignore unknown/unsupported struct */
 
1678
            break;
 
1679
        }
 
1680
        pnext = pnext->pNext;
 
1681
    }
 
1682
 
1581
1683
    vn_encode_simple_pointer(enc, NULL);
1582
1684
}
1583
1685