Merge pull request #70102 from Chaosus/rd_remove_usage_indirect
This commit is contained in:
commit
d99ea32999
5 changed files with 9 additions and 9 deletions
|
@ -504,7 +504,7 @@
|
|||
<return type="RID" />
|
||||
<param index="0" name="size_bytes" type="int" />
|
||||
<param index="1" name="data" type="PackedByteArray" default="PackedByteArray()" />
|
||||
<param index="2" name="usage" type="int" default="0" />
|
||||
<param index="2" name="usage" type="int" enum="RenderingDevice.StorageBufferUsage" default="0" />
|
||||
<description>
|
||||
</description>
|
||||
</method>
|
||||
|
@ -1273,7 +1273,7 @@
|
|||
</constant>
|
||||
<constant name="INDEX_BUFFER_FORMAT_UINT32" value="1" enum="IndexBufferFormat">
|
||||
</constant>
|
||||
<constant name="STORAGE_BUFFER_USAGE_DISPATCH_INDIRECT" value="1" enum="StorageBufferUsage">
|
||||
<constant name="STORAGE_BUFFER_USAGE_DISPATCH_INDIRECT" value="1" enum="StorageBufferUsage" is_bitfield="true">
|
||||
</constant>
|
||||
<constant name="UNIFORM_TYPE_SAMPLER" value="0" enum="UniformType">
|
||||
</constant>
|
||||
|
|
|
@ -5148,7 +5148,7 @@ RID RenderingDeviceVulkan::uniform_buffer_create(uint32_t p_size_bytes, const Ve
|
|||
return id;
|
||||
}
|
||||
|
||||
RID RenderingDeviceVulkan::storage_buffer_create(uint32_t p_size_bytes, const Vector<uint8_t> &p_data, uint32_t p_usage) {
|
||||
RID RenderingDeviceVulkan::storage_buffer_create(uint32_t p_size_bytes, const Vector<uint8_t> &p_data, BitField<StorageBufferUsage> p_usage) {
|
||||
_THREAD_SAFE_METHOD_
|
||||
ERR_FAIL_COND_V_MSG(draw_list != nullptr && p_data.size(), RID(),
|
||||
"Creating buffers with data is forbidden during creation of a draw list");
|
||||
|
@ -5159,7 +5159,7 @@ RID RenderingDeviceVulkan::storage_buffer_create(uint32_t p_size_bytes, const Ve
|
|||
|
||||
Buffer buffer;
|
||||
uint32_t flags = VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT;
|
||||
if (p_usage & STORAGE_BUFFER_USAGE_DISPATCH_INDIRECT) {
|
||||
if (p_usage.has_flag(STORAGE_BUFFER_USAGE_DISPATCH_INDIRECT)) {
|
||||
flags |= VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT;
|
||||
}
|
||||
Error err = _buffer_allocate(&buffer, p_size_bytes, flags, VMA_MEMORY_USAGE_AUTO_PREFER_DEVICE, 0);
|
||||
|
|
|
@ -1113,7 +1113,7 @@ public:
|
|||
/*****************/
|
||||
|
||||
virtual RID uniform_buffer_create(uint32_t p_size_bytes, const Vector<uint8_t> &p_data = Vector<uint8_t>());
|
||||
virtual RID storage_buffer_create(uint32_t p_size_bytes, const Vector<uint8_t> &p_data = Vector<uint8_t>(), uint32_t p_usage = 0);
|
||||
virtual RID storage_buffer_create(uint32_t p_size_bytes, const Vector<uint8_t> &p_data = Vector<uint8_t>(), BitField<StorageBufferUsage> p_usage = 0);
|
||||
virtual RID texture_buffer_create(uint32_t p_size_elements, DataFormat p_format, const Vector<uint8_t> &p_data = Vector<uint8_t>());
|
||||
|
||||
virtual RID uniform_set_create(const Vector<Uniform> &p_uniforms, RID p_shader, uint32_t p_shader_set);
|
||||
|
|
|
@ -1133,7 +1133,7 @@ void RenderingDevice::_bind_methods() {
|
|||
BIND_ENUM_CONSTANT(INDEX_BUFFER_FORMAT_UINT16);
|
||||
BIND_ENUM_CONSTANT(INDEX_BUFFER_FORMAT_UINT32);
|
||||
|
||||
BIND_ENUM_CONSTANT(STORAGE_BUFFER_USAGE_DISPATCH_INDIRECT);
|
||||
BIND_BITFIELD_FLAG(STORAGE_BUFFER_USAGE_DISPATCH_INDIRECT);
|
||||
|
||||
BIND_ENUM_CONSTANT(UNIFORM_TYPE_SAMPLER); //for sampling only (sampler GLSL type)
|
||||
BIND_ENUM_CONSTANT(UNIFORM_TYPE_SAMPLER_WITH_TEXTURE); // for sampling only); but includes a texture); (samplerXX GLSL type)); first a sampler then a texture
|
||||
|
|
|
@ -749,11 +749,11 @@ public:
|
|||
};
|
||||
|
||||
enum StorageBufferUsage {
|
||||
STORAGE_BUFFER_USAGE_DISPATCH_INDIRECT = 1
|
||||
STORAGE_BUFFER_USAGE_DISPATCH_INDIRECT = 1,
|
||||
};
|
||||
|
||||
virtual RID uniform_buffer_create(uint32_t p_size_bytes, const Vector<uint8_t> &p_data = Vector<uint8_t>()) = 0;
|
||||
virtual RID storage_buffer_create(uint32_t p_size, const Vector<uint8_t> &p_data = Vector<uint8_t>(), uint32_t p_usage = 0) = 0;
|
||||
virtual RID storage_buffer_create(uint32_t p_size, const Vector<uint8_t> &p_data = Vector<uint8_t>(), BitField<StorageBufferUsage> p_usage = 0) = 0;
|
||||
virtual RID texture_buffer_create(uint32_t p_size_elements, DataFormat p_format, const Vector<uint8_t> &p_data = Vector<uint8_t>()) = 0;
|
||||
|
||||
struct Uniform {
|
||||
|
@ -1385,7 +1385,7 @@ VARIANT_ENUM_CAST(RenderingDevice::SamplerRepeatMode)
|
|||
VARIANT_ENUM_CAST(RenderingDevice::SamplerBorderColor)
|
||||
VARIANT_ENUM_CAST(RenderingDevice::VertexFrequency)
|
||||
VARIANT_ENUM_CAST(RenderingDevice::IndexBufferFormat)
|
||||
VARIANT_ENUM_CAST(RenderingDevice::StorageBufferUsage)
|
||||
VARIANT_BITFIELD_CAST(RenderingDevice::StorageBufferUsage)
|
||||
VARIANT_ENUM_CAST(RenderingDevice::UniformType)
|
||||
VARIANT_ENUM_CAST(RenderingDevice::RenderPrimitive)
|
||||
VARIANT_ENUM_CAST(RenderingDevice::PolygonCullMode)
|
||||
|
|
Loading…
Reference in a new issue