diff --git a/rpcs3/Emu/RSX/Common/TextureUtils.cpp b/rpcs3/Emu/RSX/Common/TextureUtils.cpp index d504d2ee03..1f10a6410a 100644 --- a/rpcs3/Emu/RSX/Common/TextureUtils.cpp +++ b/rpcs3/Emu/RSX/Common/TextureUtils.cpp @@ -340,7 +340,7 @@ std::vector upload_placed_texture(gsl::span mapped_b /** * Upload texture mipmaps where alignment and offset information is provided manually */ -void upload_texture_mipmaps(gsl::span dst_buffer, const rsx::texture &texture, std::vector> alignment_offset_info) +void upload_texture_mipmaps(gsl::span dst_buffer, const rsx::texture &texture, std::vector> alignment_offset_info) { u16 w = texture.width(), h = texture.height(); u16 depth; diff --git a/rpcs3/Emu/RSX/Common/TextureUtils.h b/rpcs3/Emu/RSX/Common/TextureUtils.h index b327faa902..7614066f23 100644 --- a/rpcs3/Emu/RSX/Common/TextureUtils.h +++ b/rpcs3/Emu/RSX/Common/TextureUtils.h @@ -29,7 +29,7 @@ std::vector upload_placed_texture(gsl::span mapped_b * alignment_offset info is an array of N mipmaps providing the offset into the data block and row-pitch alignment of each * mipmap level individually. */ -void upload_texture_mipmaps(gsl::span dst_buffer, const rsx::texture &texture, std::vector> alignment_offset_info); +void upload_texture_mipmaps(gsl::span dst_buffer, const rsx::texture &texture, std::vector> alignment_offset_info); /** * Get number of bytes occupied by texture in RSX mem diff --git a/rpcs3/Emu/RSX/VK/VKFragmentProgram.cpp b/rpcs3/Emu/RSX/VK/VKFragmentProgram.cpp index 750df896cd..958b8e9283 100644 --- a/rpcs3/Emu/RSX/VK/VKFragmentProgram.cpp +++ b/rpcs3/Emu/RSX/VK/VKFragmentProgram.cpp @@ -290,7 +290,7 @@ void VKFragmentProgram::Compile() VkDevice dev = (VkDevice)*vk::get_current_renderer(); vkCreateShaderModule(dev, &fs_info, nullptr, &handle); - id = (u32)(handle); + id = (u32)((u64)handle); } void VKFragmentProgram::Delete() diff --git a/rpcs3/Emu/RSX/VK/VKFragmentProgram.h b/rpcs3/Emu/RSX/VK/VKFragmentProgram.h index c7fa7b922d..2bb9c29efb 100644 --- a/rpcs3/Emu/RSX/VK/VKFragmentProgram.h +++ b/rpcs3/Emu/RSX/VK/VKFragmentProgram.h @@ -47,7 +47,7 @@ public: ParamArray parr; VkShaderModule handle = nullptr; - int id; + u32 id; std::string shader; std::vector FragmentConstantOffsetCache; diff --git a/rpcs3/Emu/RSX/VK/VKGSRender.cpp b/rpcs3/Emu/RSX/VK/VKGSRender.cpp index 29839bd111..de9d617a66 100644 --- a/rpcs3/Emu/RSX/VK/VKGSRender.cpp +++ b/rpcs3/Emu/RSX/VK/VKGSRender.cpp @@ -412,7 +412,7 @@ void VKGSRender::end() } } - auto &upload_info = upload_vertex_data(); + auto upload_info = upload_vertex_data(); m_program->set_primitive_topology(std::get<0>(upload_info)); m_program->use(m_command_buffer, m_render_pass, 0); @@ -435,9 +435,6 @@ void VKGSRender::end() end_command_buffer_recording(); execute_command_buffer(false); - //Finish() - vkDeviceWaitIdle((*m_device)); - rsx::thread::end(); } @@ -519,7 +516,7 @@ void VKGSRender::clear_surface(u32 mask) init_buffers(); float depth_clear = 1.f; - u32 stencil_clear = 0.f; + u32 stencil_clear = 0; VkClearValue depth_stencil_clear_values, color_clear_values; VkImageSubresourceRange depth_range = vk::default_image_subresource_range(); @@ -874,7 +871,6 @@ void VKGSRender::prepare_rtts() (*m_device), &m_command_buffer); //Bind created rtts as current fbo... - VkImageView attachments[5]; std::vector draw_buffers = vk::get_draw_buffers(rsx::to_surface_target(rsx::method_registers[NV4097_SET_SURFACE_COLOR_TARGET])); m_framebuffer.destroy(); @@ -904,7 +900,7 @@ void VKGSRender::prepare_rtts() init_render_pass(vk::get_compatible_surface_format(m_surface.color_format), vk::get_compatible_depth_surface_format(m_surface.depth_format), - draw_buffers.size(), + (u8)draw_buffers.size(), draw_buffers.data()); } diff --git a/rpcs3/Emu/RSX/VK/VKHelpers.h b/rpcs3/Emu/RSX/VK/VKHelpers.h index 9c4a9a4491..43dc9f2e3b 100644 --- a/rpcs3/Emu/RSX/VK/VKHelpers.h +++ b/rpcs3/Emu/RSX/VK/VKHelpers.h @@ -99,7 +99,7 @@ namespace vk uint32_t get_queue_count() { if (queue_props.size()) - return queue_props.size(); + return (u32)queue_props.size(); uint32_t count = 0; vkGetPhysicalDeviceQueueFamilyProperties(dev, &count, nullptr); @@ -239,13 +239,13 @@ namespace vk { VkDeviceMemory vram = nullptr; vk::render_device *owner = nullptr; - u32 vram_block_sz = 0; + u64 vram_block_sz = 0; public: memory_block() {} ~memory_block() {} - void allocate_from_pool(vk::render_device &device, u32 block_sz, u32 typeBits) + void allocate_from_pool(vk::render_device &device, u64 block_sz, u32 typeBits) { if (vram) destroy(); @@ -322,9 +322,9 @@ namespace vk texture() {} ~texture() {} - void create(vk::render_device &device, VkFormat format, VkImageType image_type, VkImageViewType view_type, VkImageCreateFlags image_flags, VkImageUsageFlags usage, VkImageTiling tiling, u32 width, u32 height, u32 mipmaps, bool gpu_only, VkComponentMapping& swizzle); - void create(vk::render_device &device, VkFormat format, VkImageUsageFlags usage, VkImageTiling tiling, u32 width, u32 height, u32 mipmaps, bool gpu_only, VkComponentMapping& swizzle); - void create(vk::render_device &device, VkFormat format, VkImageUsageFlags usage, u32 width, u32 height, u32 mipmaps, bool gpu_only, VkComponentMapping& swizzle); + void create(vk::render_device &device, VkFormat format, VkImageType image_type, VkImageViewType view_type, VkImageCreateFlags image_flags, VkImageUsageFlags usage, VkImageTiling tiling, u32 width, u32 height, u32 mipmaps, bool gpu_only, VkComponentMapping swizzle); + void create(vk::render_device &device, VkFormat format, VkImageUsageFlags usage, VkImageTiling tiling, u32 width, u32 height, u32 mipmaps, bool gpu_only, VkComponentMapping swizzle); + void create(vk::render_device &device, VkFormat format, VkImageUsageFlags usage, u32 width, u32 height, u32 mipmaps, bool gpu_only, VkComponentMapping swizzle); void create(vk::render_device &device, VkFormat format, VkImageUsageFlags usage, u32 width, u32 height, u32 mipmaps, bool gpu_only); void create(vk::render_device &device, VkFormat format, VkImageUsageFlags usage, u32 width, u32 height); void destroy(); @@ -360,7 +360,7 @@ namespace vk vk::render_device *owner; vk::memory_block vram; - u32 m_size = 0; + u64 m_size = 0; bool viewable = false; @@ -368,7 +368,7 @@ namespace vk buffer() {} ~buffer() {} - void create(vk::render_device &dev, u32 size, VkFormat format, VkBufferUsageFlagBits usage, VkBufferCreateFlags flags) + void create(vk::render_device &dev, u64 size, VkFormat format, VkBufferUsageFlagBits usage, VkBufferCreateFlags flags) { if (m_buffer) throw EXCEPTION("Buffer create called on an existing buffer!"); @@ -504,7 +504,7 @@ namespace vk m_internal_format = format; } - u32 size() + u64 size() { return m_size; } @@ -784,7 +784,7 @@ namespace vk u32 get_swap_image_count() { - return m_swap_images.size(); + return (u32)m_swap_images.size(); } vk::swap_chain_image& get_swap_chain_image(const int index) @@ -959,7 +959,7 @@ namespace vk app.applicationVersion = 0; app.pEngineName = app_name; app.engineVersion = 0; - app.apiVersion = (1, 0, 0); + app.apiVersion = VK_MAKE_VERSION(1, 0, 0); //Set up instance information const char *requested_extensions[] = @@ -993,7 +993,7 @@ namespace vk if (error != VK_SUCCESS) throw EXCEPTION("Undefined trap"); m_vk_instances.push_back(instance); - return m_vk_instances.size(); + return (u32)m_vk_instances.size(); } void makeCurrentInstance(uint32_t instance_id) @@ -1037,7 +1037,7 @@ namespace vk CHECK_RESULT(vkEnumeratePhysicalDevices(m_instance, &num_gpus, pdevs.data())); - for (int i = 0; i < num_gpus; ++i) + for (u32 i = 0; i < num_gpus; ++i) gpus[i].set_device(pdevs[i]); } @@ -1060,7 +1060,7 @@ namespace vk uint32_t device_queues = dev.get_queue_count(); std::vector supportsPresent(device_queues); - for (int index = 0; index < device_queues; index++) + for (u32 index = 0; index < device_queues; index++) { vkGetPhysicalDeviceSurfaceSupportKHR(dev, index, surface, &supportsPresent[index]); } @@ -1070,7 +1070,7 @@ namespace vk uint32_t graphicsQueueNodeIndex = UINT32_MAX; uint32_t presentQueueNodeIndex = UINT32_MAX; - for (int i = 0; i < device_queues; i++) + for (u32 i = 0; i < device_queues; i++) { if ((dev.get_queue_properties(i).queueFlags & VK_QUEUE_GRAPHICS_BIT) != 0) { @@ -1206,8 +1206,8 @@ namespace vk { VkBufferView buffer_view = nullptr; VkBuffer buffer = nullptr; - u32 offset = 0; - u32 size = 0; + u64 offset = 0; + u64 size = 0; }; struct program_input diff --git a/rpcs3/Emu/RSX/VK/VKProgramPipeline.cpp b/rpcs3/Emu/RSX/VK/VKProgramPipeline.cpp index faa9e7a328..2a60abd910 100644 --- a/rpcs3/Emu/RSX/VK/VKProgramPipeline.cpp +++ b/rpcs3/Emu/RSX/VK/VKProgramPipeline.cpp @@ -725,7 +725,7 @@ namespace vk uniform.domain == domain) { VkBuffer buf = _buffer; - u32 size = _buffer.size(); + u64 size = _buffer.size(); if (uniform.as_buffer.buffer != buf || uniform.as_buffer.size != size) @@ -760,7 +760,7 @@ namespace vk { VkBuffer buf = _buffer; VkBufferView view = _buffer; - u32 size = _buffer.size(); + u64 size = _buffer.size(); if (uniform.as_buffer.buffer != buf || uniform.as_buffer.buffer_view != view || diff --git a/rpcs3/Emu/RSX/VK/VKTexture.cpp b/rpcs3/Emu/RSX/VK/VKTexture.cpp index 78e1d46498..718897c366 100644 --- a/rpcs3/Emu/RSX/VK/VKTexture.cpp +++ b/rpcs3/Emu/RSX/VK/VKTexture.cpp @@ -66,7 +66,7 @@ namespace vk if (dstLayout != VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL) change_image_layout(cmd, dst, dstLayout, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, aspect); - for (int mip_level = 0; mip_level < mipmaps; ++mip_level) + for (u32 mip_level = 0; mip_level < mipmaps; ++mip_level) { vkCmdCopyImage(cmd, src, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, dst, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1, &rgn); @@ -105,7 +105,7 @@ namespace vk if (dstLayout != VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL) change_image_layout(cmd, dst, dstLayout, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, aspect); - for (int mip_level = 0; mip_level < mipmaps; ++mip_level) + for (u32 mip_level = 0; mip_level < mipmaps; ++mip_level) { vkCmdBlitImage(cmd, src, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, dst, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1, &rgn, VK_FILTER_LINEAR); @@ -138,7 +138,7 @@ namespace vk owner = nullptr; } - void texture::create(vk::render_device &device, VkFormat format, VkImageType image_type, VkImageViewType view_type, VkImageCreateFlags image_flags, VkImageUsageFlags usage, VkImageTiling tiling, u32 width, u32 height, u32 mipmaps, bool gpu_only, VkComponentMapping& swizzle) + void texture::create(vk::render_device &device, VkFormat format, VkImageType image_type, VkImageViewType view_type, VkImageCreateFlags image_flags, VkImageUsageFlags usage, VkImageTiling tiling, u32 width, u32 height, u32 mipmaps, bool gpu_only, VkComponentMapping swizzle) { owner = &device; @@ -224,12 +224,12 @@ namespace vk ready = true; } - void texture::create(vk::render_device &device, VkFormat format, VkImageUsageFlags usage, VkImageTiling tiling, u32 width, u32 height, u32 mipmaps, bool gpu_only, VkComponentMapping& swizzle) + void texture::create(vk::render_device &device, VkFormat format, VkImageUsageFlags usage, VkImageTiling tiling, u32 width, u32 height, u32 mipmaps, bool gpu_only, VkComponentMapping swizzle) { create(device, format, VK_IMAGE_TYPE_2D, VK_IMAGE_VIEW_TYPE_2D, 0, usage, tiling, width, height, mipmaps, gpu_only, swizzle); } - void texture::create(vk::render_device &device, VkFormat format, VkImageUsageFlags usage, u32 width, u32 height, u32 mipmaps, bool gpu_only, VkComponentMapping& swizzle) + void texture::create(vk::render_device &device, VkFormat format, VkImageUsageFlags usage, u32 width, u32 height, u32 mipmaps, bool gpu_only, VkComponentMapping swizzle) { VkImageTiling tiling = VK_IMAGE_TILING_OPTIMAL; @@ -250,7 +250,7 @@ namespace vk void texture::create(vk::render_device &device, VkFormat format, VkImageUsageFlags usage, u32 width, u32 height, u32 mipmaps, bool gpu_only) { - create(device, format, usage, width, height, mipmaps, gpu_only, vk::default_component_map()); + create(device, format, usage, width, height, mipmaps, gpu_only, default_component_map()); } void texture::create(vk::render_device &device, VkFormat format, VkImageUsageFlags usage, u32 width, u32 height) @@ -390,7 +390,7 @@ namespace vk if (tex.mipmap() == 1) { - u32 buffer_size = get_placed_texture_storage_size(tex, layout_alignment[0].first, layout_alignment[0].first); + u64 buffer_size = get_placed_texture_storage_size(tex, layout_alignment[0].first, layout_alignment[0].first); if (buffer_size != layout_alignment[0].second.size) { if (buffer_size > layout_alignment[0].second.size) @@ -421,7 +421,7 @@ namespace vk else { auto &layer_props = layout_alignment[layout_alignment.size() - 1].second; - u32 max_size = layer_props.offset + layer_props.size; + u64 max_size = layer_props.offset + layer_props.size; if (m_memory_layout.size < max_size) { @@ -429,14 +429,14 @@ namespace vk } int index= 0; - std::vector> layout_offset_info(tex.mipmap()); + std::vector> layout_offset_info(tex.mipmap()); for (auto &mip_info : layout_offset_info) { auto &alignment = layout_alignment[index].first; auto &layout = layout_alignment[index++].second; - mip_info = std::make_pair(layout.offset, layout.rowPitch); + mip_info = std::make_pair(layout.offset, (u32)layout.rowPitch); } CHECK_RESULT(vkMapMemory((*owner), vram_allocation, 0, m_memory_layout.size, 0, (void**)&data)); diff --git a/rpcs3/Emu/RSX/VK/VKVertexBuffers.cpp b/rpcs3/Emu/RSX/VK/VKVertexBuffers.cpp index 7709150aaf..7fc83fa3a1 100644 --- a/rpcs3/Emu/RSX/VK/VKVertexBuffers.cpp +++ b/rpcs3/Emu/RSX/VK/VKVertexBuffers.cpp @@ -92,7 +92,7 @@ namespace vk */ u32 expand_line_loop_array_to_strip(u32 vertex_draw_count, std::vector& indices) { - int i = 0; + u32 i = 0; indices.resize(vertex_draw_count + 1); for (; i < vertex_draw_count; ++i) @@ -107,7 +107,7 @@ namespace vk { indices.resize(original_count + 1); - int i = 0; + u32 i = 0; for (; i < original_count; ++i) indices[i] = original_indices[i]; diff --git a/rpcs3/Emu/RSX/VK/VKVertexProgram.cpp b/rpcs3/Emu/RSX/VK/VKVertexProgram.cpp index f113d29c4e..6daf852435 100644 --- a/rpcs3/Emu/RSX/VK/VKVertexProgram.cpp +++ b/rpcs3/Emu/RSX/VK/VKVertexProgram.cpp @@ -269,7 +269,7 @@ void VKVertexProgram::Compile() VkDevice dev = (VkDevice)*vk::get_current_renderer(); vkCreateShaderModule(dev, &vs_info, nullptr, &handle); - id = (u32)(handle); + id = (u32)((u64)handle); } void VKVertexProgram::Delete() diff --git a/rpcs3/Emu/RSX/VK/VKVertexProgram.h b/rpcs3/Emu/RSX/VK/VKVertexProgram.h index f914460bb2..00e1399d38 100644 --- a/rpcs3/Emu/RSX/VK/VKVertexProgram.h +++ b/rpcs3/Emu/RSX/VK/VKVertexProgram.h @@ -45,7 +45,7 @@ public: ParamArray parr; VkShaderModule handle = nullptr; - int id; + u32 id; std::string shader; std::vector uniforms;