Get rid of some implicit memsets
This commit is contained in:
parent
8aa0679cbd
commit
ae4e5d34f8
|
@ -261,10 +261,12 @@ static void vulkan_debug_mark_object(VkDevice device,
|
||||||
if (vkSetDebugUtilsObjectNameEXT)
|
if (vkSetDebugUtilsObjectNameEXT)
|
||||||
{
|
{
|
||||||
char merged_name[1024];
|
char merged_name[1024];
|
||||||
VkDebugUtilsObjectNameInfoEXT info = { VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT };
|
VkDebugUtilsObjectNameInfoEXT info;
|
||||||
size_t _len = strlcpy(merged_name, name, sizeof(merged_name));
|
size_t _len = strlcpy(merged_name, name, sizeof(merged_name));
|
||||||
snprintf(merged_name + _len, sizeof(merged_name) - _len, " (%u)", count);
|
snprintf(merged_name + _len, sizeof(merged_name) - _len, " (%u)", count);
|
||||||
|
|
||||||
|
info.sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT;
|
||||||
|
info.pNext = NULL;
|
||||||
info.objectType = object_type;
|
info.objectType = object_type;
|
||||||
info.objectHandle = object_handle;
|
info.objectHandle = object_handle;
|
||||||
info.pObjectName = merged_name;
|
info.pObjectName = merged_name;
|
||||||
|
@ -853,9 +855,9 @@ static VkInstance vulkan_context_create_instance_wrapper(void *opaque, const VkI
|
||||||
const char **instance_layers = (const char**)malloc((info.enabledLayerCount + 1) * sizeof(const char *));
|
const char **instance_layers = (const char**)malloc((info.enabledLayerCount + 1) * sizeof(const char *));
|
||||||
|
|
||||||
memcpy((void*)instance_extensions, info.ppEnabledExtensionNames, info.enabledExtensionCount * sizeof(const char *));
|
memcpy((void*)instance_extensions, info.ppEnabledExtensionNames, info.enabledExtensionCount * sizeof(const char *));
|
||||||
memcpy((void*)instance_layers, info.ppEnabledLayerNames, info.enabledLayerCount * sizeof(const char *));
|
memcpy((void*)instance_layers, info.ppEnabledLayerNames, info.enabledLayerCount * sizeof(const char *));
|
||||||
info.ppEnabledExtensionNames = instance_extensions;
|
info.ppEnabledExtensionNames = instance_extensions;
|
||||||
info.ppEnabledLayerNames = instance_layers;
|
info.ppEnabledLayerNames = instance_layers;
|
||||||
|
|
||||||
instance_extensions[info.enabledExtensionCount++] = "VK_KHR_surface";
|
instance_extensions[info.enabledExtensionCount++] = "VK_KHR_surface";
|
||||||
|
|
||||||
|
@ -894,7 +896,7 @@ static VkInstance vulkan_context_create_instance_wrapper(void *opaque, const VkI
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef VULKAN_DEBUG
|
#ifdef VULKAN_DEBUG
|
||||||
instance_layers[info.enabledLayerCount++] = "VK_LAYER_KHRONOS_validation";
|
instance_layers[info.enabledLayerCount++] = "VK_LAYER_KHRONOS_validation";
|
||||||
instance_extensions[info.enabledExtensionCount++] = "VK_EXT_debug_utils";
|
instance_extensions[info.enabledExtensionCount++] = "VK_EXT_debug_utils";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -991,6 +993,7 @@ static bool vulkan_create_display_surface(gfx_ctx_vulkan_data_t *vk,
|
||||||
const struct vulkan_display_surface_info *info)
|
const struct vulkan_display_surface_info *info)
|
||||||
{
|
{
|
||||||
unsigned dpy, i, j;
|
unsigned dpy, i, j;
|
||||||
|
VkDisplaySurfaceCreateInfoKHR create_info;
|
||||||
bool ret = true;
|
bool ret = true;
|
||||||
uint32_t display_count = 0;
|
uint32_t display_count = 0;
|
||||||
uint32_t plane_count = 0;
|
uint32_t plane_count = 0;
|
||||||
|
@ -1000,7 +1003,6 @@ static bool vulkan_create_display_surface(gfx_ctx_vulkan_data_t *vk,
|
||||||
VkDisplayModePropertiesKHR *modes = NULL;
|
VkDisplayModePropertiesKHR *modes = NULL;
|
||||||
uint32_t best_plane = UINT32_MAX;
|
uint32_t best_plane = UINT32_MAX;
|
||||||
VkDisplayPlaneAlphaFlagBitsKHR alpha_mode = VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR;
|
VkDisplayPlaneAlphaFlagBitsKHR alpha_mode = VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR;
|
||||||
VkDisplaySurfaceCreateInfoKHR create_info = { VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR };
|
|
||||||
VkDisplayModeKHR best_mode = VK_NULL_HANDLE;
|
VkDisplayModeKHR best_mode = VK_NULL_HANDLE;
|
||||||
/* Monitor index starts on 1, 0 is auto. */
|
/* Monitor index starts on 1, 0 is auto. */
|
||||||
unsigned monitor_index = info->monitor_index;
|
unsigned monitor_index = info->monitor_index;
|
||||||
|
@ -1153,6 +1155,9 @@ out:
|
||||||
if (best_plane == UINT32_MAX)
|
if (best_plane == UINT32_MAX)
|
||||||
GOTO_FAIL();
|
GOTO_FAIL();
|
||||||
|
|
||||||
|
create_info.sType = VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR;
|
||||||
|
create_info.pNext = NULL;
|
||||||
|
create_info.flags = 0;
|
||||||
create_info.displayMode = best_mode;
|
create_info.displayMode = best_mode;
|
||||||
create_info.planeIndex = best_plane;
|
create_info.planeIndex = best_plane;
|
||||||
create_info.planeStackIndex = planes[best_plane].currentStackIndex;
|
create_info.planeStackIndex = planes[best_plane].currentStackIndex;
|
||||||
|
@ -2289,8 +2294,9 @@ bool vulkan_create_swapchain(gfx_ctx_vulkan_data_t *vk,
|
||||||
bool vulkan_context_init(gfx_ctx_vulkan_data_t *vk,
|
bool vulkan_context_init(gfx_ctx_vulkan_data_t *vk,
|
||||||
enum vulkan_wsi_type type)
|
enum vulkan_wsi_type type)
|
||||||
{
|
{
|
||||||
|
VkApplicationInfo app;
|
||||||
PFN_vkGetInstanceProcAddr GetInstanceProcAddr;
|
PFN_vkGetInstanceProcAddr GetInstanceProcAddr;
|
||||||
VkApplicationInfo app = { VK_STRUCTURE_TYPE_APPLICATION_INFO };
|
const char *prog_name = NULL;
|
||||||
video_driver_state_t *video_st = video_state_get_ptr();
|
video_driver_state_t *video_st = video_state_get_ptr();
|
||||||
struct retro_hw_render_context_negotiation_interface_vulkan
|
struct retro_hw_render_context_negotiation_interface_vulkan
|
||||||
*iface = (struct retro_hw_render_context_negotiation_interface_vulkan*)video_st->hw_render_context_negotiation;
|
*iface = (struct retro_hw_render_context_negotiation_interface_vulkan*)video_st->hw_render_context_negotiation;
|
||||||
|
@ -2347,9 +2353,12 @@ bool vulkan_context_init(gfx_ctx_vulkan_data_t *vk,
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
app.pApplicationName = msg_hash_to_str(MSG_PROGRAM);
|
prog_name = msg_hash_to_str(MSG_PROGRAM);
|
||||||
|
app.sType = VK_STRUCTURE_TYPE_APPLICATION_INFO;
|
||||||
|
app.pNext = NULL;
|
||||||
|
app.pApplicationName = prog_name;
|
||||||
app.applicationVersion = 0;
|
app.applicationVersion = 0;
|
||||||
app.pEngineName = msg_hash_to_str(MSG_PROGRAM);
|
app.pEngineName = prog_name;
|
||||||
app.engineVersion = 0;
|
app.engineVersion = 0;
|
||||||
app.apiVersion = VK_API_VERSION_1_0;
|
app.apiVersion = VK_API_VERSION_1_0;
|
||||||
|
|
||||||
|
@ -2417,9 +2426,16 @@ bool vulkan_context_init(gfx_ctx_vulkan_data_t *vk,
|
||||||
vulkan_context_create_instance_wrapper, vk);
|
vulkan_context_create_instance_wrapper, vk);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
VkInstanceCreateInfo info = { VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO };
|
VkInstanceCreateInfo info;
|
||||||
info.pApplicationInfo = &app;
|
info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
|
||||||
vk->context.instance = vulkan_context_create_instance_wrapper(vk, &info);
|
info.pNext = NULL;
|
||||||
|
info.flags = 0;
|
||||||
|
info.pApplicationInfo = &app;
|
||||||
|
info.enabledLayerCount = 0;
|
||||||
|
info.ppEnabledLayerNames = NULL;
|
||||||
|
info.enabledExtensionCount = 0;
|
||||||
|
info.ppEnabledExtensionNames = NULL;
|
||||||
|
vk->context.instance = vulkan_context_create_instance_wrapper(vk, &info);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (vk->context.instance == VK_NULL_HANDLE)
|
if (vk->context.instance == VK_NULL_HANDLE)
|
||||||
|
|
|
@ -383,10 +383,9 @@ static struct vk_texture vulkan_create_texture(vk_t *vk,
|
||||||
VkFormat remap_tex_fmt;
|
VkFormat remap_tex_fmt;
|
||||||
VkMemoryRequirements mem_reqs;
|
VkMemoryRequirements mem_reqs;
|
||||||
VkSubresourceLayout layout;
|
VkSubresourceLayout layout;
|
||||||
|
VkMemoryAllocateInfo alloc;
|
||||||
VkDevice device = vk->context->device;
|
VkDevice device = vk->context->device;
|
||||||
VkBufferCreateInfo buffer_info = { VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO };
|
VkBufferCreateInfo buffer_info = { VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO };
|
||||||
VkImageViewCreateInfo view = { VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO };
|
|
||||||
VkMemoryAllocateInfo alloc = { VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO };
|
|
||||||
VkImageSubresource subresource = { VK_IMAGE_ASPECT_COLOR_BIT };
|
VkImageSubresource subresource = { VK_IMAGE_ASPECT_COLOR_BIT };
|
||||||
|
|
||||||
memset(&tex, 0, sizeof(tex));
|
memset(&tex, 0, sizeof(tex));
|
||||||
|
@ -517,7 +516,10 @@ static struct vk_texture vulkan_create_texture(vk_t *vk,
|
||||||
vkGetBufferMemoryRequirements(device, tex.buffer, &mem_reqs);
|
vkGetBufferMemoryRequirements(device, tex.buffer, &mem_reqs);
|
||||||
}
|
}
|
||||||
|
|
||||||
alloc.allocationSize = mem_reqs.size;
|
alloc.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO;
|
||||||
|
alloc.pNext = NULL;
|
||||||
|
alloc.allocationSize = mem_reqs.size;
|
||||||
|
alloc.memoryTypeIndex = 0;
|
||||||
|
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
|
@ -632,21 +634,27 @@ static struct vk_texture vulkan_create_texture(vk_t *vk,
|
||||||
if ( type != VULKAN_TEXTURE_STAGING
|
if ( type != VULKAN_TEXTURE_STAGING
|
||||||
&& type != VULKAN_TEXTURE_READBACK)
|
&& type != VULKAN_TEXTURE_READBACK)
|
||||||
{
|
{
|
||||||
view.image = tex.image;
|
VkImageViewCreateInfo view;
|
||||||
view.viewType = VK_IMAGE_VIEW_TYPE_2D;
|
view.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO;
|
||||||
view.format = format;
|
view.pNext = NULL;
|
||||||
|
view.flags = 0;
|
||||||
|
view.image = tex.image;
|
||||||
|
view.viewType = VK_IMAGE_VIEW_TYPE_2D;
|
||||||
|
view.format = format;
|
||||||
if (swizzle)
|
if (swizzle)
|
||||||
view.components = *swizzle;
|
view.components = *swizzle;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
view.components.r = VK_COMPONENT_SWIZZLE_R;
|
view.components.r = VK_COMPONENT_SWIZZLE_R;
|
||||||
view.components.g = VK_COMPONENT_SWIZZLE_G;
|
view.components.g = VK_COMPONENT_SWIZZLE_G;
|
||||||
view.components.b = VK_COMPONENT_SWIZZLE_B;
|
view.components.b = VK_COMPONENT_SWIZZLE_B;
|
||||||
view.components.a = VK_COMPONENT_SWIZZLE_A;
|
view.components.a = VK_COMPONENT_SWIZZLE_A;
|
||||||
}
|
}
|
||||||
view.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
|
view.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
|
||||||
view.subresourceRange.levelCount = info.mipLevels;
|
view.subresourceRange.baseMipLevel = 0;
|
||||||
view.subresourceRange.layerCount = 1;
|
view.subresourceRange.levelCount = info.mipLevels;
|
||||||
|
view.subresourceRange.baseArrayLayer = 0;
|
||||||
|
view.subresourceRange.layerCount = 1;
|
||||||
|
|
||||||
vkCreateImageView(device, &view, NULL, &tex.view);
|
vkCreateImageView(device, &view, NULL, &tex.view);
|
||||||
}
|
}
|
||||||
|
@ -706,6 +714,8 @@ static struct vk_texture vulkan_create_texture(vk_t *vk,
|
||||||
{
|
{
|
||||||
VkBufferImageCopy region;
|
VkBufferImageCopy region;
|
||||||
VkCommandBuffer staging;
|
VkCommandBuffer staging;
|
||||||
|
VkSubmitInfo submit_info;
|
||||||
|
VkCommandBufferBeginInfo begin_info;
|
||||||
VkCommandBufferAllocateInfo cmd_info;
|
VkCommandBufferAllocateInfo cmd_info;
|
||||||
enum VkImageLayout layout_fmt =
|
enum VkImageLayout layout_fmt =
|
||||||
(tex.flags & VK_TEX_FLAG_MIPMAP)
|
(tex.flags & VK_TEX_FLAG_MIPMAP)
|
||||||
|
@ -713,8 +723,6 @@ static struct vk_texture vulkan_create_texture(vk_t *vk,
|
||||||
: VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
|
: VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
|
||||||
struct vk_texture tmp = vulkan_create_texture(vk, NULL,
|
struct vk_texture tmp = vulkan_create_texture(vk, NULL,
|
||||||
width, height, format, initial, NULL, VULKAN_TEXTURE_STAGING);
|
width, height, format, initial, NULL, VULKAN_TEXTURE_STAGING);
|
||||||
VkSubmitInfo submit_info = { VK_STRUCTURE_TYPE_SUBMIT_INFO };
|
|
||||||
VkCommandBufferBeginInfo begin_info = { VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO };
|
|
||||||
|
|
||||||
cmd_info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO;
|
cmd_info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO;
|
||||||
cmd_info.pNext = NULL;
|
cmd_info.pNext = NULL;
|
||||||
|
@ -725,7 +733,10 @@ static struct vk_texture vulkan_create_texture(vk_t *vk,
|
||||||
vkAllocateCommandBuffers(vk->context->device,
|
vkAllocateCommandBuffers(vk->context->device,
|
||||||
&cmd_info, &staging);
|
&cmd_info, &staging);
|
||||||
|
|
||||||
|
begin_info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
|
||||||
|
begin_info.pNext = NULL;
|
||||||
begin_info.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT;
|
begin_info.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT;
|
||||||
|
begin_info.pInheritanceInfo = NULL;
|
||||||
|
|
||||||
vkBeginCommandBuffer(staging, &begin_info);
|
vkBeginCommandBuffer(staging, &begin_info);
|
||||||
|
|
||||||
|
@ -814,8 +825,15 @@ static struct vk_texture vulkan_create_texture(vk_t *vk,
|
||||||
VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT);
|
VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT);
|
||||||
|
|
||||||
vkEndCommandBuffer(staging);
|
vkEndCommandBuffer(staging);
|
||||||
submit_info.commandBufferCount = 1;
|
submit_info.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;
|
||||||
submit_info.pCommandBuffers = &staging;
|
submit_info.pNext = NULL;
|
||||||
|
submit_info.waitSemaphoreCount = 0;
|
||||||
|
submit_info.pWaitSemaphores = NULL;
|
||||||
|
submit_info.pWaitDstStageMask = NULL;
|
||||||
|
submit_info.commandBufferCount = 1;
|
||||||
|
submit_info.pCommandBuffers = &staging;
|
||||||
|
submit_info.signalSemaphoreCount = 0;
|
||||||
|
submit_info.pSignalSemaphores = NULL;
|
||||||
|
|
||||||
#ifdef HAVE_THREADS
|
#ifdef HAVE_THREADS
|
||||||
slock_lock(vk->context->queue_lock);
|
slock_lock(vk->context->queue_lock);
|
||||||
|
@ -848,7 +866,6 @@ static struct vk_texture vulkan_create_texture(vk_t *vk,
|
||||||
return tex;
|
return tex;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Dynamic texture type should be set to : VULKAN_TEXTURE_DYNAMIC
|
/* Dynamic texture type should be set to : VULKAN_TEXTURE_DYNAMIC
|
||||||
* Staging texture type should be set to : VULKAN_TEXTURE_STAGING
|
* Staging texture type should be set to : VULKAN_TEXTURE_STAGING
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue