mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-09 05:27:49 +00:00
Remove indirection for vertexStage
This is to match the work in progress webgpu.h header. Also contains a fix for the wire where it wouldn't GetExtraRequiredSize for structures that are by-value members of other structures. BUG=dawn:22 Change-Id: I3c706bf9cd7a550d40fd667877f032c860d0a032 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/9382 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Corentin Wallez <cwallez@chromium.org>
This commit is contained in:
committed by
Commit Bot service account
parent
d55bd7ad94
commit
c6c7a42e6e
@@ -123,23 +123,27 @@
|
||||
{% endfor %}
|
||||
|
||||
//* Gather how much space will be needed for pointer members.
|
||||
{% for member in members if member.annotation != "value" and member.length != "strlen" and not member.skip_serialize %}
|
||||
{% for member in members if member.length != "strlen" and not member.skip_serialize %}
|
||||
{% if member.type.category != "object" and member.optional %}
|
||||
if (record.{{as_varName(member.name)}} != nullptr)
|
||||
{% endif %}
|
||||
{
|
||||
size_t memberLength = {{member_length(member, "record.")}};
|
||||
result += memberLength * {{member_transfer_sizeof(member)}};
|
||||
|
||||
//* Structures might contain more pointers so we need to add their extra size as well.
|
||||
{% if member.type.category == "structure" %}
|
||||
for (size_t i = 0; i < memberLength; ++i) {
|
||||
{% if member.annotation == "const*const*" %}
|
||||
result += {{as_cType(member.type.name)}}GetExtraRequiredSize(*record.{{as_varName(member.name)}}[i]);
|
||||
{% else %}
|
||||
result += {{as_cType(member.type.name)}}GetExtraRequiredSize(record.{{as_varName(member.name)}}[i]);
|
||||
{% endif %}
|
||||
}
|
||||
{% if member.annotation != "value" %}
|
||||
size_t memberLength = {{member_length(member, "record.")}};
|
||||
result += memberLength * {{member_transfer_sizeof(member)}};
|
||||
//* Structures might contain more pointers so we need to add their extra size as well.
|
||||
{% if member.type.category == "structure" %}
|
||||
for (size_t i = 0; i < memberLength; ++i) {
|
||||
{% if member.annotation == "const*const*" %}
|
||||
result += {{as_cType(member.type.name)}}GetExtraRequiredSize(*record.{{as_varName(member.name)}}[i]);
|
||||
{% else %}
|
||||
{{assert(member.annotation == "const*")}}
|
||||
result += {{as_cType(member.type.name)}}GetExtraRequiredSize(record.{{as_varName(member.name)}}[i]);
|
||||
{% endif %}
|
||||
}
|
||||
{% endif %}
|
||||
{% elif member.type.category == "structure" %}
|
||||
result += {{as_cType(member.type.name)}}GetExtraRequiredSize(record.{{as_varName(member.name)}});
|
||||
{% endif %}
|
||||
}
|
||||
{% endfor %}
|
||||
@@ -192,8 +196,8 @@
|
||||
{
|
||||
size_t memberLength = {{member_length(member, "record.")}};
|
||||
auto memberBuffer = reinterpret_cast<{{member_transfer_type(member)}}*>(*buffer);
|
||||
|
||||
*buffer += memberLength * {{member_transfer_sizeof(member)}};
|
||||
|
||||
for (size_t i = 0; i < memberLength; ++i) {
|
||||
{{serialize_member(member, "record." + memberName + "[i]", "memberBuffer[i]" )}}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user