mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2026-10-07 14:26:36 +00:00
Remove some dead accesors
This commit is contained in:
@@ -70,12 +70,14 @@ VkSamplerAddressMode WrapMode(const Device& device,
|
|||||||
}
|
}
|
||||||
ASSERT(false);
|
ASSERT(false);
|
||||||
return VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
|
return VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
|
||||||
case Tegra::Texture::WrapMode::MirrorOnceClampToEdge:
|
|
||||||
return VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE;
|
|
||||||
case Tegra::Texture::WrapMode::MirrorOnceBorder:
|
case Tegra::Texture::WrapMode::MirrorOnceBorder:
|
||||||
UNIMPLEMENTED();
|
UNIMPLEMENTED();
|
||||||
return VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE;
|
[[fallthrough]];
|
||||||
|
case Tegra::Texture::WrapMode::MirrorOnceClampToEdge:
|
||||||
case Tegra::Texture::WrapMode::MirrorOnceClampOGL:
|
case Tegra::Texture::WrapMode::MirrorOnceClampOGL:
|
||||||
|
if (!device.IsKhrSamplerMirrorClampToEdgeSupported()) {
|
||||||
|
return VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE;
|
||||||
|
}
|
||||||
return VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE;
|
return VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE;
|
||||||
default:
|
default:
|
||||||
UNIMPLEMENTED_MSG("Unimplemented wrap mode={}", wrap_mode);
|
UNIMPLEMENTED_MSG("Unimplemented wrap mode={}", wrap_mode);
|
||||||
|
|||||||
@@ -740,7 +740,7 @@ void GraphicsPipeline::MakePipeline(VkRenderPass render_pass) {
|
|||||||
.vertexBindingDivisorCount = static_cast<u32>(vertex_binding_divisors.size()),
|
.vertexBindingDivisorCount = static_cast<u32>(vertex_binding_divisors.size()),
|
||||||
.pVertexBindingDivisors = vertex_binding_divisors.data(),
|
.pVertexBindingDivisors = vertex_binding_divisors.data(),
|
||||||
};
|
};
|
||||||
if (!vertex_binding_divisors.empty()) {
|
if (!vertex_binding_divisors.empty() && device.IsExtVertexAttributeDivisorSupported()) {
|
||||||
vertex_input_ci.pNext = &input_divisor_ci;
|
vertex_input_ci.pNext = &input_divisor_ci;
|
||||||
}
|
}
|
||||||
const bool has_tess_stages = spv_modules[1] || spv_modules[2];
|
const bool has_tess_stages = spv_modules[1] || spv_modules[2];
|
||||||
|
|||||||
@@ -32,8 +32,6 @@ MultiRangeBufferCache::MultiRangeBufferCache(const Device& device) {
|
|||||||
|
|
||||||
VkDeviceSize MultiRangeBufferCache::QueryBlockSize(const Device& device,
|
VkDeviceSize MultiRangeBufferCache::QueryBlockSize(const Device& device,
|
||||||
u32& memory_type_bits) const {
|
u32& memory_type_bits) const {
|
||||||
const VkDevice logical = *device.GetLogical();
|
|
||||||
const auto& dld = device.GetDispatchLoader();
|
|
||||||
const VkBufferCreateInfo probe_ci{
|
const VkBufferCreateInfo probe_ci{
|
||||||
.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
|
.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
|
||||||
.pNext = nullptr,
|
.pNext = nullptr,
|
||||||
@@ -44,6 +42,14 @@ VkDeviceSize MultiRangeBufferCache::QueryBlockSize(const Device& device,
|
|||||||
.queueFamilyIndexCount = 0,
|
.queueFamilyIndexCount = 0,
|
||||||
.pQueueFamilyIndices = nullptr,
|
.pQueueFamilyIndices = nullptr,
|
||||||
};
|
};
|
||||||
|
if (device.IsKhrMaintenance4Supported()) {
|
||||||
|
const VkMemoryRequirements reqs =
|
||||||
|
device.GetLogical().GetDeviceBufferMemoryRequirements(probe_ci);
|
||||||
|
memory_type_bits = reqs.memoryTypeBits;
|
||||||
|
return reqs.alignment;
|
||||||
|
}
|
||||||
|
const VkDevice logical = *device.GetLogical();
|
||||||
|
const auto& dld = device.GetDispatchLoader();
|
||||||
VkBuffer probe{};
|
VkBuffer probe{};
|
||||||
if (dld.vkCreateBuffer(logical, &probe_ci, nullptr, &probe) != VK_SUCCESS) {
|
if (dld.vkCreateBuffer(logical, &probe_ci, nullptr, &probe) != VK_SUCCESS) {
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -326,6 +326,9 @@ void RasterizerVulkan::DrawIndirect() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (params.include_count) {
|
if (params.include_count) {
|
||||||
|
if (!device.IsDrawIndirectCountSupported()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
const auto count = buffer_cache.GetDrawIndirectCount();
|
const auto count = buffer_cache.GetDrawIndirectCount();
|
||||||
const auto& draw_buffer = count.first;
|
const auto& draw_buffer = count.first;
|
||||||
const auto& offset_base = count.second;
|
const auto& offset_base = count.second;
|
||||||
|
|||||||
@@ -949,6 +949,8 @@ bool Device::GetSuitability(bool requires_swapchain) {
|
|||||||
extensions.depth_stencil_resolve =
|
extensions.depth_stencil_resolve =
|
||||||
extensions.depth_stencil_resolve &&
|
extensions.depth_stencil_resolve &&
|
||||||
(instance_version >= VK_API_VERSION_1_2 || extensions.create_renderpass2);
|
(instance_version >= VK_API_VERSION_1_2 || extensions.create_renderpass2);
|
||||||
|
extensions.draw_indirect_count =
|
||||||
|
extensions.draw_indirect_count || instance_version >= VK_API_VERSION_1_2;
|
||||||
RemoveExtensionIfUnsuitable(extensions.depth_stencil_resolve,
|
RemoveExtensionIfUnsuitable(extensions.depth_stencil_resolve,
|
||||||
VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME);
|
VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME);
|
||||||
|
|
||||||
@@ -1408,18 +1410,6 @@ void Device::RemoveUnsuitableExtensions() {
|
|||||||
features.workgroup_memory_explicit_layout,
|
features.workgroup_memory_explicit_layout,
|
||||||
VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME);
|
VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME);
|
||||||
|
|
||||||
// VK_KHR_maintenance1
|
|
||||||
extensions.maintenance1 = loaded_extensions.contains(VK_KHR_MAINTENANCE_1_EXTENSION_NAME);
|
|
||||||
RemoveExtensionIfUnsuitable(extensions.maintenance1, VK_KHR_MAINTENANCE_1_EXTENSION_NAME);
|
|
||||||
|
|
||||||
// VK_KHR_maintenance2
|
|
||||||
extensions.maintenance2 = loaded_extensions.contains(VK_KHR_MAINTENANCE_2_EXTENSION_NAME);
|
|
||||||
RemoveExtensionIfUnsuitable(extensions.maintenance2, VK_KHR_MAINTENANCE_2_EXTENSION_NAME);
|
|
||||||
|
|
||||||
// VK_KHR_maintenance3
|
|
||||||
extensions.maintenance3 = loaded_extensions.contains(VK_KHR_MAINTENANCE_3_EXTENSION_NAME);
|
|
||||||
RemoveExtensionIfUnsuitable(extensions.maintenance3, VK_KHR_MAINTENANCE_3_EXTENSION_NAME);
|
|
||||||
|
|
||||||
// VK_KHR_maintenance4
|
// VK_KHR_maintenance4
|
||||||
extensions.maintenance4 = features.maintenance4.maintenance4;
|
extensions.maintenance4 = features.maintenance4.maintenance4;
|
||||||
RemoveExtensionFeatureIfUnsuitable(extensions.maintenance4, features.maintenance4,
|
RemoveExtensionFeatureIfUnsuitable(extensions.maintenance4, features.maintenance4,
|
||||||
@@ -1430,18 +1420,6 @@ void Device::RemoveUnsuitableExtensions() {
|
|||||||
RemoveExtensionFeatureIfUnsuitable(extensions.maintenance5, features.maintenance5,
|
RemoveExtensionFeatureIfUnsuitable(extensions.maintenance5, features.maintenance5,
|
||||||
VK_KHR_MAINTENANCE_5_EXTENSION_NAME);
|
VK_KHR_MAINTENANCE_5_EXTENSION_NAME);
|
||||||
|
|
||||||
// VK_KHR_maintenance6
|
|
||||||
extensions.maintenance6 = features.maintenance6.maintenance6;
|
|
||||||
RemoveExtensionFeatureIfUnsuitable(extensions.maintenance6, features.maintenance6,
|
|
||||||
VK_KHR_MAINTENANCE_6_EXTENSION_NAME);
|
|
||||||
|
|
||||||
// VK_KHR_maintenance7
|
|
||||||
extensions.maintenance7 = loaded_extensions.contains(VK_KHR_MAINTENANCE_7_EXTENSION_NAME);
|
|
||||||
RemoveExtensionIfUnsuitable(extensions.maintenance7, VK_KHR_MAINTENANCE_7_EXTENSION_NAME);
|
|
||||||
|
|
||||||
// VK_KHR_maintenance8
|
|
||||||
extensions.maintenance8 = loaded_extensions.contains(VK_KHR_MAINTENANCE_8_EXTENSION_NAME);
|
|
||||||
RemoveExtensionIfUnsuitable(extensions.maintenance8, VK_KHR_MAINTENANCE_8_EXTENSION_NAME);
|
|
||||||
|
|
||||||
// VK_KHR_synchronization2
|
// VK_KHR_synchronization2
|
||||||
extensions.synchronization2 = features.synchronization2.synchronization2;
|
extensions.synchronization2 = features.synchronization2.synchronization2;
|
||||||
|
|||||||
@@ -72,7 +72,6 @@ VK_DEFINE_HANDLE(VmaAllocator)
|
|||||||
FEATURE(EXT, TransformFeedback, TRANSFORM_FEEDBACK, transform_feedback) \
|
FEATURE(EXT, TransformFeedback, TRANSFORM_FEEDBACK, transform_feedback) \
|
||||||
FEATURE(EXT, VertexInputDynamicState, VERTEX_INPUT_DYNAMIC_STATE, vertex_input_dynamic_state) \
|
FEATURE(EXT, VertexInputDynamicState, VERTEX_INPUT_DYNAMIC_STATE, vertex_input_dynamic_state) \
|
||||||
FEATURE(KHR, Maintenance5, MAINTENANCE_5, maintenance5) \
|
FEATURE(KHR, Maintenance5, MAINTENANCE_5, maintenance5) \
|
||||||
FEATURE(KHR, Maintenance6, MAINTENANCE_6, maintenance6) \
|
|
||||||
FEATURE(KHR, PipelineExecutableProperties, PIPELINE_EXECUTABLE_PROPERTIES, \
|
FEATURE(KHR, PipelineExecutableProperties, PIPELINE_EXECUTABLE_PROPERTIES, \
|
||||||
pipeline_executable_properties) \
|
pipeline_executable_properties) \
|
||||||
FEATURE(KHR, ShaderQuadControl, SHADER_QUAD_CONTROL, shader_quad_control) \
|
FEATURE(KHR, ShaderQuadControl, SHADER_QUAD_CONTROL, shader_quad_control) \
|
||||||
@@ -104,17 +103,11 @@ VK_DEFINE_HANDLE(VmaAllocator)
|
|||||||
EXTENSION(KHR, SWAPCHAIN, swapchain) \
|
EXTENSION(KHR, SWAPCHAIN, swapchain) \
|
||||||
EXTENSION(KHR, SWAPCHAIN_MUTABLE_FORMAT, swapchain_mutable_format) \
|
EXTENSION(KHR, SWAPCHAIN_MUTABLE_FORMAT, swapchain_mutable_format) \
|
||||||
EXTENSION(KHR, IMAGE_FORMAT_LIST, image_format_list) \
|
EXTENSION(KHR, IMAGE_FORMAT_LIST, image_format_list) \
|
||||||
EXTENSION(KHR, MAINTENANCE_1, maintenance1) \
|
|
||||||
EXTENSION(KHR, MAINTENANCE_2, maintenance2) \
|
|
||||||
EXTENSION(KHR, MAINTENANCE_3, maintenance3) \
|
|
||||||
EXTENSION(KHR, MAINTENANCE_7, maintenance7) \
|
|
||||||
EXTENSION(KHR, MAINTENANCE_8, maintenance8) \
|
|
||||||
EXTENSION(NV, DEVICE_DIAGNOSTICS_CONFIG, device_diagnostics_config) \
|
EXTENSION(NV, DEVICE_DIAGNOSTICS_CONFIG, device_diagnostics_config) \
|
||||||
EXTENSION(NV, GEOMETRY_SHADER_PASSTHROUGH, geometry_shader_passthrough) \
|
EXTENSION(NV, GEOMETRY_SHADER_PASSTHROUGH, geometry_shader_passthrough) \
|
||||||
EXTENSION(NV, VIEWPORT_ARRAY2, viewport_array2) \
|
EXTENSION(NV, VIEWPORT_ARRAY2, viewport_array2) \
|
||||||
EXTENSION(NV, VIEWPORT_SWIZZLE, viewport_swizzle) \
|
EXTENSION(NV, VIEWPORT_SWIZZLE, viewport_swizzle) \
|
||||||
EXTENSION(EXT, FILTER_CUBIC, filter_cubic) \
|
EXTENSION(EXT, FILTER_CUBIC, filter_cubic) \
|
||||||
EXTENSION(IMG, FILTER_CUBIC, filter_cubic_img) \
|
|
||||||
EXTENSION(QCOM, FILTER_CUBIC_WEIGHTS, filter_cubic_weights)
|
EXTENSION(QCOM, FILTER_CUBIC_WEIGHTS, filter_cubic_weights)
|
||||||
|
|
||||||
// Define extensions which must be supported.
|
// Define extensions which must be supported.
|
||||||
@@ -549,11 +542,6 @@ FN_MAX_LIMIT_LIST
|
|||||||
return extensions.geometry_shader_passthrough;
|
return extensions.geometry_shader_passthrough;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns true if the device supports VK_KHR_uniform_buffer_standard_layout.
|
|
||||||
bool IsKhrUniformBufferStandardLayoutSupported() const {
|
|
||||||
return extensions.uniform_buffer_standard_layout;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Returns true if the device supports VK_KHR_push_descriptor.
|
/// Returns true if the device supports VK_KHR_push_descriptor.
|
||||||
bool IsKhrPushDescriptorSupported() const {
|
bool IsKhrPushDescriptorSupported() const {
|
||||||
return extensions.push_descriptor;
|
return extensions.push_descriptor;
|
||||||
@@ -1004,27 +992,27 @@ FN_MAX_LIMIT_LIST
|
|||||||
return features2.features.multiViewport;
|
return features2.features.multiViewport;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns true if the device supports VK_KHR_maintenance1.
|
/// Returns true if the device supports VK_KHR_maintenance5.
|
||||||
bool IsKhrMaintenance1Supported() const {
|
|
||||||
return extensions.maintenance1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Returns true if the device supports VK_KHR_maintenance2.
|
|
||||||
bool IsKhrMaintenance2Supported() const {
|
|
||||||
return extensions.maintenance2;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Returns true if the device supports VK_KHR_maintenance3.
|
|
||||||
bool IsKhrMaintenance3Supported() const {
|
|
||||||
return extensions.maintenance3;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Returns true if the device supports VK_KHR_maintenance4.
|
/// Returns true if the device supports VK_KHR_maintenance4.
|
||||||
bool IsKhrMaintenance4Supported() const {
|
bool IsKhrMaintenance4Supported() const {
|
||||||
return extensions.maintenance4;
|
return extensions.maintenance4;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns true if the device supports VK_KHR_maintenance5.
|
/// Returns true if the device can read the draw count from a buffer.
|
||||||
|
bool IsDrawIndirectCountSupported() const {
|
||||||
|
return extensions.draw_indirect_count;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Returns true if the device supports VK_EXT_vertex_attribute_divisor.
|
||||||
|
bool IsExtVertexAttributeDivisorSupported() const {
|
||||||
|
return extensions.vertex_attribute_divisor;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Returns true if the device supports VK_KHR_sampler_mirror_clamp_to_edge.
|
||||||
|
bool IsKhrSamplerMirrorClampToEdgeSupported() const {
|
||||||
|
return extensions.sampler_mirror_clamp_to_edge;
|
||||||
|
}
|
||||||
|
|
||||||
bool IsKhrMaintenance5Supported() const {
|
bool IsKhrMaintenance5Supported() const {
|
||||||
return extensions.maintenance5;
|
return extensions.maintenance5;
|
||||||
}
|
}
|
||||||
@@ -1046,21 +1034,6 @@ FN_MAX_LIMIT_LIST
|
|||||||
properties.maintenance5.earlyFragmentSampleMaskTestBeforeSampleCounting;
|
properties.maintenance5.earlyFragmentSampleMaskTestBeforeSampleCounting;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns true if the device supports VK_KHR_maintenance6.
|
|
||||||
bool IsKhrMaintenance6Supported() const {
|
|
||||||
return extensions.maintenance6;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Returns true if the device supports VK_KHR_maintenance7.
|
|
||||||
bool IsKhrMaintenance7Supported() const {
|
|
||||||
return extensions.maintenance7;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Returns true if the device supports VK_KHR_maintenance8.
|
|
||||||
bool IsKhrMaintenance8Supported() const {
|
|
||||||
return extensions.maintenance8;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Returns true if the device supports UINT8 index buffer conversion via compute shader.
|
/// Returns true if the device supports UINT8 index buffer conversion via compute shader.
|
||||||
bool SupportsUint8Indices() const {
|
bool SupportsUint8Indices() const {
|
||||||
return features.bit8_storage.storageBuffer8BitAccess &&
|
return features.bit8_storage.storageBuffer8BitAccess &&
|
||||||
|
|||||||
@@ -216,6 +216,7 @@ void Load(VkDevice device, DeviceDispatch& dld) noexcept {
|
|||||||
X(vkFreeDescriptorSets);
|
X(vkFreeDescriptorSets);
|
||||||
X(vkFreeMemory);
|
X(vkFreeMemory);
|
||||||
X(vkGetBufferMemoryRequirements2);
|
X(vkGetBufferMemoryRequirements2);
|
||||||
|
X(vkGetDeviceBufferMemoryRequirements);
|
||||||
X(vkGetDeviceQueue);
|
X(vkGetDeviceQueue);
|
||||||
X(vkGetEventStatus);
|
X(vkGetEventStatus);
|
||||||
X(vkGetFenceStatus);
|
X(vkGetFenceStatus);
|
||||||
@@ -266,6 +267,12 @@ void Load(VkDevice device, DeviceDispatch& dld) noexcept {
|
|||||||
Proc(dld.vkCmdDrawIndexedIndirectCount, dld, "vkCmdDrawIndexedIndirectCountKHR", device);
|
Proc(dld.vkCmdDrawIndexedIndirectCount, dld, "vkCmdDrawIndexedIndirectCountKHR", device);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Maintenance4 queries are core in Vulkan 1.3, otherwise require VK_KHR_maintenance4
|
||||||
|
if (!dld.vkGetDeviceBufferMemoryRequirements) {
|
||||||
|
Proc(dld.vkGetDeviceBufferMemoryRequirements, dld,
|
||||||
|
"vkGetDeviceBufferMemoryRequirementsKHR", device);
|
||||||
|
}
|
||||||
|
|
||||||
// Synchronization2 is core in Vulkan 1.3, otherwise requires VK_KHR_synchronization2
|
// Synchronization2 is core in Vulkan 1.3, otherwise requires VK_KHR_synchronization2
|
||||||
if (!dld.vkCmdPipelineBarrier2) {
|
if (!dld.vkCmdPipelineBarrier2) {
|
||||||
Proc(dld.vkCmdPipelineBarrier2, dld, "vkCmdPipelineBarrier2KHR", device);
|
Proc(dld.vkCmdPipelineBarrier2, dld, "vkCmdPipelineBarrier2KHR", device);
|
||||||
@@ -874,6 +881,22 @@ VkMemoryRequirements Device::GetBufferMemoryRequirements(VkBuffer buffer,
|
|||||||
return requirements.memoryRequirements;
|
return requirements.memoryRequirements;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VkMemoryRequirements Device::GetDeviceBufferMemoryRequirements(
|
||||||
|
const VkBufferCreateInfo& ci) const noexcept {
|
||||||
|
const VkDeviceBufferMemoryRequirements info{
|
||||||
|
.sType = VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS,
|
||||||
|
.pNext = nullptr,
|
||||||
|
.pCreateInfo = &ci,
|
||||||
|
};
|
||||||
|
VkMemoryRequirements2 requirements{
|
||||||
|
.sType = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
|
||||||
|
.pNext = nullptr,
|
||||||
|
.memoryRequirements{},
|
||||||
|
};
|
||||||
|
dld->vkGetDeviceBufferMemoryRequirements(handle, &info, &requirements);
|
||||||
|
return requirements.memoryRequirements;
|
||||||
|
}
|
||||||
|
|
||||||
VkMemoryRequirements Device::GetImageMemoryRequirements(VkImage image) const noexcept {
|
VkMemoryRequirements Device::GetImageMemoryRequirements(VkImage image) const noexcept {
|
||||||
VkMemoryRequirements requirements;
|
VkMemoryRequirements requirements;
|
||||||
dld->vkGetImageMemoryRequirements(handle, image, &requirements);
|
dld->vkGetImageMemoryRequirements(handle, image, &requirements);
|
||||||
|
|||||||
@@ -332,6 +332,7 @@ struct DeviceDispatch : InstanceDispatch {
|
|||||||
PFN_vkFreeDescriptorSets vkFreeDescriptorSets{};
|
PFN_vkFreeDescriptorSets vkFreeDescriptorSets{};
|
||||||
PFN_vkFreeMemory vkFreeMemory{};
|
PFN_vkFreeMemory vkFreeMemory{};
|
||||||
PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2{};
|
PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2{};
|
||||||
|
PFN_vkGetDeviceBufferMemoryRequirements vkGetDeviceBufferMemoryRequirements{};
|
||||||
PFN_vkGetDeviceQueue vkGetDeviceQueue{};
|
PFN_vkGetDeviceQueue vkGetDeviceQueue{};
|
||||||
PFN_vkGetEventStatus vkGetEventStatus{};
|
PFN_vkGetEventStatus vkGetEventStatus{};
|
||||||
PFN_vkGetFenceStatus vkGetFenceStatus{};
|
PFN_vkGetFenceStatus vkGetFenceStatus{};
|
||||||
@@ -1105,6 +1106,8 @@ public:
|
|||||||
VkMemoryRequirements GetBufferMemoryRequirements(VkBuffer buffer,
|
VkMemoryRequirements GetBufferMemoryRequirements(VkBuffer buffer,
|
||||||
void* pnext = nullptr) const noexcept;
|
void* pnext = nullptr) const noexcept;
|
||||||
|
|
||||||
|
VkMemoryRequirements GetDeviceBufferMemoryRequirements(const VkBufferCreateInfo& ci) const noexcept;
|
||||||
|
|
||||||
VkMemoryRequirements GetImageMemoryRequirements(VkImage image) const noexcept;
|
VkMemoryRequirements GetImageMemoryRequirements(VkImage image) const noexcept;
|
||||||
|
|
||||||
std::vector<VkPipelineExecutablePropertiesKHR> GetPipelineExecutablePropertiesKHR(
|
std::vector<VkPipelineExecutablePropertiesKHR> GetPipelineExecutablePropertiesKHR(
|
||||||
|
|||||||
Reference in New Issue
Block a user