Fix errors with Vulkan Xcode build (#2906)
This commit is contained in:
@@ -269,7 +269,7 @@ void Drawable::draw(PaintParameters& parameters) const {
|
||||
|
||||
impl->pipelineInfo.setRenderable(renderPass_.getDescriptor().renderable);
|
||||
|
||||
const uint32_t instances = instanceAttributes ? instanceAttributes->getMaxCount() : 1;
|
||||
const auto instances = instanceAttributes ? instanceAttributes->getMaxCount() : 1;
|
||||
|
||||
for (const auto& seg : impl->segments) {
|
||||
const auto& segment = seg->getSegment();
|
||||
@@ -283,9 +283,16 @@ void Drawable::draw(PaintParameters& parameters) const {
|
||||
commandBuffer->bindPipeline(vk::PipelineBindPoint::eGraphics, pipeline.get());
|
||||
|
||||
if (segment.indexLength) {
|
||||
commandBuffer->drawIndexed(segment.indexLength, instances, segment.indexOffset, segment.vertexOffset, 0);
|
||||
commandBuffer->drawIndexed(static_cast<uint32_t>(segment.indexLength),
|
||||
static_cast<uint32_t>(instances),
|
||||
static_cast<uint32_t>(segment.indexOffset),
|
||||
static_cast<int32_t>(segment.vertexOffset),
|
||||
0);
|
||||
} else {
|
||||
commandBuffer->draw(segment.vertexLength, instances, segment.vertexOffset, 0);
|
||||
commandBuffer->draw(static_cast<uint32_t>(segment.vertexLength),
|
||||
static_cast<uint32_t>(instances),
|
||||
static_cast<uint32_t>(segment.vertexOffset),
|
||||
0);
|
||||
}
|
||||
|
||||
context.renderingStats().numDrawCalls++;
|
||||
@@ -344,7 +351,7 @@ void Drawable::buildVulkanInputBindings() noexcept {
|
||||
const auto& buffer = vertexBuffer->get();
|
||||
|
||||
const auto& buffIt = std::find(uniqueBuffers.begin(), uniqueBuffers.end(), binding->vertexBufferResource);
|
||||
uint32_t bindingIndex = 0;
|
||||
std::size_t bindingIndex = 0;
|
||||
|
||||
if (buffIt == uniqueBuffers.end()) {
|
||||
bindingIndex = impl->pipelineInfo.inputBindings.size();
|
||||
@@ -353,7 +360,7 @@ void Drawable::buildVulkanInputBindings() noexcept {
|
||||
|
||||
// add new buffer binding
|
||||
impl->pipelineInfo.inputBindings.push_back(vk::VertexInputBindingDescription()
|
||||
.setBinding(bindingIndex)
|
||||
.setBinding(static_cast<uint32_t>(bindingIndex))
|
||||
.setStride(binding->vertexStride)
|
||||
.setInputRate(inputRate));
|
||||
|
||||
@@ -365,8 +372,8 @@ void Drawable::buildVulkanInputBindings() noexcept {
|
||||
|
||||
impl->pipelineInfo.inputAttributes.push_back(
|
||||
vk::VertexInputAttributeDescription()
|
||||
.setBinding(bindingIndex)
|
||||
.setLocation(i)
|
||||
.setBinding(static_cast<uint32_t>(bindingIndex))
|
||||
.setLocation(static_cast<uint32_t>(i))
|
||||
.setFormat(PipelineInfo::vulkanFormat(binding->attribute.dataType))
|
||||
.setOffset(binding->attribute.offset));
|
||||
}
|
||||
@@ -431,7 +438,7 @@ bool Drawable::bindDescriptors(CommandEncoder& encoder) const noexcept {
|
||||
.setBufferInfo(descriptorBufferInfo)
|
||||
.setDescriptorCount(1)
|
||||
.setDescriptorType(vk::DescriptorType::eUniformBuffer)
|
||||
.setDstBinding(id)
|
||||
.setDstBinding(static_cast<uint32_t>(id))
|
||||
.setDstSet(uniformDescriptorSet);
|
||||
|
||||
device->updateDescriptorSets(writeDescriptorSet, nullptr);
|
||||
@@ -460,7 +467,7 @@ bool Drawable::bindDescriptors(CommandEncoder& encoder) const noexcept {
|
||||
.setImageInfo(descriptorImageInfo)
|
||||
.setDescriptorCount(1)
|
||||
.setDescriptorType(vk::DescriptorType::eCombinedImageSampler)
|
||||
.setDstBinding(id)
|
||||
.setDstBinding(static_cast<uint32_t>(id))
|
||||
.setDstSet(imageDescriptorSet);
|
||||
|
||||
device->updateDescriptorSets(writeDescriptorSet, nullptr);
|
||||
|
||||
Reference in New Issue
Block a user