Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixed potential NULL-pointer access when creating a new image #154

Open
wants to merge 90 commits into
base: master
Choose a base branch
from

Conversation

Silverlan
Copy link
Contributor

is_vk_call_successful returns true even if the result of vkCreateImage is VK_ERROR_VALIDATION_FAILED_EXT. The specification doesn't mention it as a valid return code, but in some cases it can be returned by the Nvidia drivers anyway, in which case m_image will be NULL.

DominikWitczakAMD and others added 30 commits December 1, 2017 15:58
…arious concerns reported by user; add support for AMD_shader_info and EXT_shader_stencil_export
…pdate_wk4

Add opt-in MT-safety support; refactor existing interfaces; address v…
Address GPUOpen-Archive#55: Binding arrays very difficult to use
Address GPUOpen-Archive#54: Change supported NT version to sth more reasonable
Address GPUOpen-Archive#50: Images created with mipmap data need
VK_IMAGE_USAGE_TRANSFER_DST_BIT applied
Address GPUOpen-Archive#47: Anvil build creates config.h in source tree, not build tree.
Address GPUOpen-Archive#30: Rethink Ownership Model for Anvil Objects?

Add support for VK_AMD_shader_fragment_mask.
Add support for VK_AMD_shader_image_load_store_lod.
Add support for VK_KHR_bind_memory2.
Add support for VK_KHR_descriptor_update_template.
Add support for VK_KHR_maintenance3.

Expose features and properties using dedicated structs, for cleaner
integration with future Vulkan extensions.
Update Vulkan headers to VK 1.1.70.
* GPUOpen-Archive#62: Exception when trying to bake a descriptor set with null bindings
* Descriptor set write support can now handle arrayed bindings with gaps.
* Fix an issue where RenderPassInfo would use obsolete pointers under certain
  circumstances.
* Fix an issue where bindings would not be marked as clean at update time
* Fix broken sampler descriptor support.
* Fix VK_AMD_texture_gather_bias_lod support regression
Bug-fixes: Resetting command buffers must be preceded with a pool lock.
Dependency updates: Updated glslang to 5d3babdbdfb2b2fb632450fdd1c4ec093bb3b071
Dependency updates: Updated VMA to 5391e6c7fae01b4271d61b1e5bbeff494cc24296
Dependency updates: Updated Vulkan headers to v72
New features: Added support for AMD_shader_core
New features: Added support for EXT_descriptor_indexing
Refactoring: General extension support is now encapsulated in a single header file.
Refactoring: Most of the objects now take a "create info" structure at instantiation time.
Refactoring: Renamed existing ..Info structs to CreateInfo for coherence.
- VK_KHR_external_fence
- VK_KHR_external_fence_fd
- VK_KHR_external_fence_win32
- VK_KHR_external_memory_fd
- VK_KHR_external_memory_win32
- VK_KHR_external_semaphore
- VK_KHR_external_semaphore_fd
- VK_KHR_external_semaphore_win32

Address GPUOpen-Archive#80: Change order of cleanup in BaseDevice::~BaseDevice()
Address GPUOpen-Archive#81: No way to get query pool results on host?
Address GPUOpen-Archive#82: Minor spelling error in PhysicalDeviceFeaturesCoreVK10
Address GPUOpen-Archive#83: ImageView::get_swizzle_array - required size for parameter?
Address GPUOpen-Archive#84: Function definition for GraphicsPipelineInfo::get_pipeline_color_blend_attachment_state is missing?

Other minor improvements & bug-fixes.
While building Anvil without GLSLANG, we get a compilation error.
This commit fixes this compilation error by not defining the
get_disassembly function in the ShaderModule class, which
was trying to return the m_disassembly variable (which is also
not defined in this case). Also the commit removes depencies on
the GLSLANG headers in this case.
…apning_glslang_process being split from bake_spirv_blob
Add support for KHR_dedicated_allocation
Add support for VK_KHR_draw_indirect_count
Add support for VK_KHR_get_memory_requirements2
Minor bug-fixes & improvements.
Various interop support improvements
Update Khronos Vulkan headers to v82
Fixed the quatifier and label problem assocated with bake_spirv_by_sw…
…d if not all attachments had image views bound.

Fix an issue where memory ranges would not be aligned to required boundaries at invalidation / flush time
DominikWitczakAMD and others added 29 commits November 5, 2018 16:13
Remove superfluous const from simple return types
Make destructors virtual where needed
Add support for YUV formats introduced by VK_KHR_sampler_ycbcr_conversion (no extension support has been added yet)
Bug-fixes and improvements
Update Vulkan headers to v1.1.91
…issing_reflection_fix

Renderpasses: Two getters should return more info than they currently do
…update_wk47

Week GPUOpen-Archive#47 update: Bug-fixes and improvements
Extensions: Added support for VK_EXT_transform_feedback
Extensions: Improved support for VK_EXT_debug_marker and VK_EXT_debug_report
General: Bug-fixes and improvements
General: Fix zero-initialization of a handful of structs, basing on work done in !129
General: Update glslang to tag 7.10.2984
New functionality: Added debug messenger which acts a a wrapper for VK_EXT_debug_utils, VK_EXT_debug_marker and VK_EXT_debug_report
Bug-fixes and improvements

PR GPUOpen-Archive#137: Integrate swapchain improvements into private branch
PR GPUOpen-Archive#135: Barrier code fix; VK barrier struct fixes; Sample mask handling fixes; Swapchain recreation support
Add support for VK 1.1 devices
Add support for VK_AMD_memory_overallocation_behavor
Add support for VK_EXT_conservative_rasterization
Add support for VK_EXT_depth_clip_enable
Add support for VK_EXT_global_priority
Add support for VK_EXT_inline_uniform_block
Add support for VK_EXT_memory_budget
Add support for VK_EXT_memory_priority
Add support for VK_EXT_queue_family_foreign
Add support for VK_EXT_scalar_block_layout
Add support for VK_EXT_separate_stencil_usage
Add support for VK_GOOGLE_decorate_string
Add support for VK_GOOGLE_hlsl_functionality1
Add support for VK_KHR_depth_stencil_resolve
Add support for VK_KHR_driver_properties
Add support for VK_KHR_sampler_ycbcr_conversion
Add support for VK_KHR_shader_atomic_int64
Add support for VK_KHR_shader_flo16_int8
Add support for VK_KHR_shader_float_controls
Add support for VK_KHR_swapchain_mutable_format
Add support for VK_KHR_vulkan_memory_model
Add support for VK_KHR_win32_keyed_mutex
Bump glslang to 7.11.3113
Bump VK headers to public v101
Heavy refactoring of existing infrastructure.
Fix GPUOpen-Archive#134: Assertion failure when using specialization constants
Address GPUOpen-Archive#18: Add CMake option to use alternative glslang snapshot
Address GPUOpen-Archive#75: Replace in_releaseable_sets wioth descriptor pool create flags in DescriptorSetGroup::create()
Address GPUOpen-Archive#104: Pipeline cache to use for a particular device can now be specified in DeviceCreateInfo.
Address GPUOpen-Archive#59: Change add_vertex_attribute() to add_vertex_binding()
`is_vk_call_successful` returns true even if the result of `vkCreateImage` is `VK_ERROR_VALIDATION_FAILED_EXT`. The specification doesn't mention it as a valid return code, but in some cases it can be returned by the Nvidia drivers anyway, in which case `m_image` will be NULL.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants