mesa/src/intel/vulkan
Iago Toral Quiroga d0195bd067 anv/cmd_buffer: add a status field to anv_batch
The vkCmd*() functions do not report errors, instead, any errors should be
reported by the time we call vkEndCommandBuffer(). This means that we
need to make the driver robust against incosistent and/or imcomplete
command  buffer states through the command recording process, particularly,
avoid crashes due to access to memory that we failed to allocate previously.

The strategy used to do this is to track the first error ocurred while
recording a command buffer in the batch associated with it. We use the
batch to track this information because the command buffer may not be
visible to all parts of the driver that can produce errors we need to be
aware of (such as allocation failures during batch emissions).

Later patches will use this error information to guard parts of the driver
that may not be safe to execute.

v2: Move the field from the command buffer to the batch so we can track
    errors from batch emissions (Jason)

v3: Registering errors in the command buffer's batch during
    anv_create_cmd_buffer() is unnecessary, since the command buffer
    is freed at the end of the function in that case (Topi)

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
2017-03-16 11:40:05 +01:00
..
tests anv: fold the tests' makefile 2016-05-01 08:38:04 +01:00
.gitignore anv: Suffix the intel_icd file with the host CPU 2016-10-21 09:30:20 -07:00
anv_allocator.c anv: Add missing error-checking to anv_block_pool_init (v2) 2016-11-28 21:11:25 +00:00
anv_batch_chain.c anv: Rename clflush_range and state_clflush 2017-02-21 12:26:35 -08:00
anv_blorp.c anv/blorp: return early if we failed to create the shader binary 2017-03-16 11:40:05 +01:00
anv_cmd_buffer.c anv/cmd_buffer: add a status field to anv_batch 2017-03-16 11:40:05 +01:00
anv_descriptor_set.c util/sha1: rework _mesa_sha1_{init,final} 2017-03-15 11:18:43 +00:00
anv_device.c anv: do not open random render node(s) 2017-03-15 11:38:05 +00:00
anv_dump.c anv/cmd_buffer: Move Begin/End/Execute to genX_cmd_buffer.c 2016-10-17 17:41:35 -07:00
anv_entrypoints_gen.py anv: add VK_KHR_descriptor_update_template support 2017-03-02 10:34:06 +00:00
anv_formats.c anv: Use vk_foreach_struct for handling extension structs 2017-02-14 16:15:39 -08:00
anv_gem.c anv/device: Return the right error for failed maps 2016-11-09 18:17:48 -08:00
anv_gem_stubs.c anv: remove define _DEFAULT_SOURCE 2016-05-23 12:09:11 +01:00
anv_genX.h anv: Add support for the PMA fix on Broadwell 2017-02-14 14:18:55 -08:00
anv_image.c intel/debug: Add a common INTEL_DEBUG=nohiz option 2017-03-14 21:00:09 -07:00
anv_intel.c anv: Fix unintentional integer overflow in anv_CreateDmaBufImageINTEL 2016-11-22 15:15:45 +00:00
anv_nir.h anv: Add an input attachment lowering pass 2016-11-22 13:44:55 -08:00
anv_nir_apply_pipeline_layout.c anv: Add support for shaderStorageImageWriteWithoutFormat 2017-02-14 08:16:52 -08:00
anv_nir_lower_input_attachments.c nir: Rework conversion opcodes 2017-03-14 07:36:40 -07:00
anv_nir_lower_push_constants.c spirv: compute push constant access offset & range 2017-01-04 21:14:17 +00:00
anv_pass.c anv/pass: Store subpass attachment reference list 2017-03-02 13:17:55 -08:00
anv_pipeline.c anv: Use on-the-fly surface states for dynamic buffer descriptors 2017-03-13 07:58:00 -07:00
anv_pipeline_cache.c anv: do not try to ref/unref NULL shaders 2017-03-16 11:40:05 +01:00
anv_private.h anv/cmd_buffer: add a status field to anv_batch 2017-03-16 11:40:05 +01:00
anv_util.c anv: Add a performance warning helper 2017-03-07 15:22:16 -08:00
anv_wsi.c vulkan/wsi/radv: add initial prime support (v1.1) 2017-02-27 05:42:16 +10:00
anv_wsi_wayland.c anv/wsi: Don't include wayland headers 2017-03-13 11:16:30 +00:00
anv_wsi_x11.c vulkan/wsi/radv: add initial prime support (v1.1) 2017-02-27 05:42:16 +10:00
dev_icd.json.in anv: Replace "abi_versions" with correct "api_version". 2016-10-25 12:55:39 -07:00
gen7_cmd_buffer.c anv: Get rid of the stub() macros 2017-03-07 15:22:16 -08:00
gen8_cmd_buffer.c anv: Take a device parameter in anv_state_flush 2017-02-21 12:26:35 -08:00
genX_blorp_exec.c anv: remove unnecessary function prototype. 2017-03-16 11:40:05 +01:00
genX_cmd_buffer.c anv/cmd_buffer: report errors in vkBeginCommandBuffer() 2017-03-16 11:40:05 +01:00
genX_gpu_memcpy.c intel: Share URB configuration code between GL and Vulkan. 2016-11-19 11:40:01 -08:00
genX_pipeline.c anv: Store the user's VkAttachmentReference 2017-03-02 13:17:55 -08:00
genX_query.c anv: Put everything about queries in genX_query.c 2017-02-21 12:26:35 -08:00
genX_state.c anv: Emit 3DSTATE_HS/TE/DS packets. 2017-01-10 13:27:31 -08:00
intel_icd.json.in anv: Replace "abi_versions" with correct "api_version". 2016-10-25 12:55:39 -07:00
TODO anv: Enable MSAA compression 2017-02-23 12:10:42 -08:00
vk_format_info.h anv: Set up binding tables and surface states for input attachments 2016-11-22 13:44:55 -08:00