summaryrefslogtreecommitdiffstats
path: root/src/vulkan
Commit message (Collapse)AuthorAgeFilesLines
* anv: Pull StencilBufferWriteEnable from both sidesJason Ekstrand2016-02-171-1/+2
|
* anv: Ignore unused dimensions in vkCreateImage's anv_imageNanley Chery2016-02-171-0/+2
| | | | | | | We ignore unused dimensions in the isl surface; do the same for the resulting anv_image. Reviewed-by: Kristian Høgsberg Kristensen <[email protected]>
* anv: Remove hacky PIPE_CONTROL in vkCmdEndRenderPass()Kristian Høgsberg Kristensen2016-02-171-14/+0
| | | | | The vkCmdPipelineBarrier() command should work as intended now and we need to pull the plug on this old hack.
* anv: Rework vkCmdPipelineBarrier()Kristian Høgsberg Kristensen2016-02-171-60/+62
| | | | | | | | | | | | We don't need to look at the stage flags, as we don't really support any fine-grained, stage-level synchronization. We have to do two PIPE_CONTROLs in case we're both flushing and invalidating. Additionally, if we do end up doing two PIPE_CONTROLs, the first, flusing one also has to stall and wait for the flushing to finish, so we don't re-dirty the caches with in-flight rendering after the second PIPE_CONTROL invalidates.
* anv: Ignore unused dimensions in vkCreateImageKristian Høgsberg Kristensen2016-02-171-3/+18
| | | | | | | | | | | | | | | | We would assert on unused dimensions (eg extent.depth for VK_IMAGE_TYPE_2D) not being 1, but the specification doesn't put any constraints on those. For example, for VK_IMAGE_TYPE_1D: "If imageType is VK_IMAGE_TYPE_1D, the value of extent.width must be less than or equal to the value of VkPhysicalDeviceLimits::maxImageDimension1D, or the value of VkImageFormatProperties::maxExtent.width (as returned by vkGetPhysicalDeviceImageFormatProperties with values of format, type, tiling, usage and flags equal to those in this structure) - whichever is higher" We'll fix up the arguments to isl to keep isl strict in what it expects.
* anv: Set correct write domain on window system BOsKristian Høgsberg Kristensen2016-02-175-3/+15
| | | | | | We need to make sure GEM understands that we're writing to the BO, in case it needs to synchronize with other rings (blitter use in display server, for example).
* Revert "anv: Disable snooping for allocator pools again"Kristian Høgsberg Kristensen2016-02-161-0/+2
| | | | | | | | | | | | This reverts commit c136672c593399e831db0da8b8cc6d8a5d73c1d3. We still have the intermittent missing flush for VkEvent in certain vulkancts cases: piglit.deqp-vk.api.command_buffers.execute_large_primary piglit.deqp-vk.api.command_buffers.submit_count_non_zero, Let's reenable the snooping until we figure out the root cause.
* anv: Make driver and icd file installableKristian Høgsberg Kristensen2016-02-164-12/+39
| | | | | | | Change the name of the .so to libvulkan_intel.so and add an installable icd with the installed paths. Keep the icd file with build-tree paths, but rename to dev_icd.json to make it clear that it's for development purposes.
* anv: Revise PhysicalDeviceFeatures and remove FINISHMEKristian Høgsberg Kristensen2016-02-161-8/+8
|
* anv: pCreateInfo->pApplicationInfo parameter to vkCreateInstance may be NULLPhilipp Zabel2016-02-161-2/+4
| | | | | | | | | | Fix a NULL pointer dereference in anv_CreateInstance in case the pApplicationInfo field of the supplied VkInstanceCreateInfo structure is NULL [1]. [1] https://www.khronos.org/registry/vulkan/specs/1.0/apispec.html#VkInstanceCreateInfo Signed-off-by: Philipp Zabel <[email protected]>
* anv/icd.json: Update the ABI versionJason Ekstrand2016-02-161-1/+1
|
* anv/genxml: Include MBO bits for gen7 and gen75Kristian Høgsberg Kristensen2016-02-153-6/+18
|
* anv: Add missing gen75_cmd_buffer_set_subpass() prototypeKristian Høgsberg Kristensen2016-02-151-0/+2
|
* anv: Bump to 1.0.3Adam Jackson2016-02-151-1/+1
| | | | | Probably this should be picked up from <vulkan.h> directly, or we should just assume that any 1.0.x is legal.
* anv/gen7: Make disabling the FS workKristian Høgsberg Kristensen2016-02-151-3/+17
| | | | | We disable the fragment shader for depth/stencil-only pipelines. This commit makes that work for gen7.
* anv: Deduplicate render pass codeKristian Høgsberg Kristensen2016-02-153-343/+179
| | | | | This lets us share the renderpass code and depth/stencil state code between gen 7 and gen 8.
* anv/gen7: Fix pipeline selection in init_device_state()Kristian Høgsberg Kristensen2016-02-151-1/+1
| | | | We need the 3D pipeline for the initial setup, not GPGPU.
* anv/gen7: Set 3DSTATE_SF depth buffer format correctlyKristian Høgsberg Kristensen2016-02-152-3/+9
| | | | | We need to pull this from the render pass information at state flush time.
* anv/gen7: Call flush_pipeline_select_3d() from CmdBeginRenderPassKristian Høgsberg Kristensen2016-02-151-0/+2
|
* anv: Share flush_pipeline_select_3d() between gen7 and gen8Kristian Høgsberg Kristensen2016-02-154-22/+23
|
* anv: Fix warning 3DSTATE_VERTEX_ELEMENTS setupKristian Høgsberg Kristensen2016-02-151-6/+7
| | | | | | This is a little more subtle. If elem_count is 0, nothing else happens in this function, so we return early to avoid warning about uninitialized 'p'.
* anv: Fix misc simple warningsKristian Høgsberg Kristensen2016-02-154-5/+8
|
* anv/meta_resolve: Set origin_upper_left on gl_FragCoordJason Ekstrand2016-02-151-0/+1
| | | | | It's required by the spec and any shaders that don't set it will be broken. I'm not really sure how multisampling was even working before...
* anv: Disable snooping for allocator pools againKristian Høgsberg Kristensen2016-02-121-2/+0
| | | | | | The race we were seeing on cherryview was caused by the multi-submit problem with fences. We can now turn snooping off again an rely on clflush and we intended.
* anv: Submit fence bo only after all command buffersKristian Høgsberg Kristensen2016-02-121-9/+9
| | | | | | We were submitting the fence bo after each command buffer in a multi command buffer submit, causing us to occasionally complete the fence too early.
* anv: Implement VkPipelineCacheKristian Høgsberg Kristensen2016-02-125-198/+589
| | | | | | | We hash the input SPIR-V, specialization constants, entrypoint and the shader key using SHA1 to determine a unique identifier for the combination. A VkPipelineCache is then a hash table mapping these identifiers to the corresponding prog_data and kernel data.
* anv/meta_blit: Remove references to clearingChad Versace2016-02-121-13/+10
| | | | | | | | Long ago, the blit code used to handle clearing and blitting. - Fix any comments that refer to clearing. - Rename shader var 'attr' to 'tex_pos'. The name 'attr' is an artifact of the time when the shader was used for blitting as well as clearing.
* anv/meta_blit: Coalesce glsl_vec4_type varsChad Versace2016-02-121-12/+9
| | | | | | | Just a refactor. No behavior change. Several expressions have the same value: they point to glsl_vec4_type(). Coalesce them into a single variable.
* anv/device: clflush simple batches if !LLCJason Ekstrand2016-02-121-0/+2
|
* anv: Add a clfush_range helper functionJason Ekstrand2016-02-121-7/+10
|
* anv/meta: Move blit code to anv_meta_blit.cChad Versace2016-02-124-1428/+1453
| | | | | | | | The clear code lived in anv_meta_clear.c. The resolve code in anv_meta_resolve.c. Only the blit code lived in anv_meta.c, alongside the shareed meta code. This is just a copy-paste patch. No change in behavior.
* anv/meta: Hardcode smooth texcoord interpolation in blit shadersChad Versace2016-02-121-4/+3
| | | | | | | Trivial cleanup. No change in behavior. Function argument 'attr_flat', in anv_meta.c:build_nir_vertex_shader(), was always false.
* anv/device: Use a normal BO in submit_simple_batchJason Ekstrand2016-02-111-10/+12
|
* anv: Add a vk_icdGetInstanceProcAddr entrypointJason Ekstrand2016-02-111-0/+14
| | | | | | Aparently there are some issues in symbol resolution if an application packages its own loader and you have a system-installed one. I don't really understand the details, but it's not onorous to add.
* anv/event: Use a 64-bit valueJason Ekstrand2016-02-112-2/+2
| | | | | | | The immediate write from PIPE_CONTROL is 64-bits at least on BDW. This used to work on 64-bit archs because the compiler would align the following anv_state struct up for us. However, in 32-bit builds, they overlap and it causes problems.
* gen8/pipeline: Properly set bits in PS_EXTRA for W, depth, and samaple maskJason Ekstrand2016-02-112-1/+10
|
* gen8/pipeline: Pull gs_vertex_count from prog_dataJason Ekstrand2016-02-113-3/+1
|
* anv/pack: Handle case where a struct field covers multiple dwordsKristian Høgsberg Kristensen2016-02-101-4/+7
| | | | | We also didn't add start to field.end to get the absolute field end position.
* Merge commit '85f5c18fef1ff2f19d698f150e23a02acd6f59b9' into vulkanJason Ekstrand2016-02-101-2/+6
|
* anv: Handle dwords that are all MBZ correctlyKristian Høgsberg Kristensen2016-02-101-4/+25
| | | | | | A few packets have dwords in them that are all MBZ and we failed to write those. This change makes sure we iterate through all dwords and write them all.
* anv: Fix out-of-tree buildKristian Høgsberg Kristensen2016-02-101-0/+1
| | | | We need to be able to find the generated nir_opcodes.h header.
* anv: Generate pack headers from XML definitionKristian Høgsberg Kristensen2016-02-1018-34454/+12682
| | | | | | This huge commit switches us over to using a simple xml format (genxml) for defining our command streamer commands and a python script for generating the pack headers we use in the driver.
* anv: Fix up spirv for new texture/sampler split stuffJason Ekstrand2016-02-093-20/+20
|
* anv/apply_pipeline_layout: Use the new const_index helpersJason Ekstrand2016-02-091-2/+2
|
* anv/image: Fix usage for depthstencil imagesChad Versace2016-02-091-6/+22
| | | | | | | | | The tests assertion-failed in vkCmdClearDepthStencilImage because the isl surface lacked ISL_SURF_USAGE_DEPTH_BIT. Fixes: https://gitlab.khronos.org/vulkan/mesa/issues/26 Fixes: dEQP-VK.pipeline.timestamp.transfer_tests.host_stage_with_clear_depth_stencil_image_method Fixes: dEQP-VK.pipeline.timestamp.transfer_tests.transfer_stage_with_clear_depth_stencil_image_method
* anv/image: Refactor choose_isl_surf_usage()Chad Versace2016-02-091-13/+12
| | | | | - Rename local var isl_flags -> isl_usage. - Fix comment.
* anv/image: Fix choose_isl_surf_usage()Chad Versace2016-02-091-10/+9
| | | | | | | | Don't translate VkImageCreateInfo::usage into an isl_surf_usage bitmask. Instead, translate anv_image::usage, which is a superset of VkImageCreateInfo::usage. For-Issue: https://gitlab.khronos.org/vulkan/mesa/issues/26
* anv/WSI/X11: Use the right allocator for freeing swapchainsJason Ekstrand2016-02-091-1/+1
|
* anv: Replace anv_format::depth_format with ::has_depthChad Versace2016-02-096-34/+32
| | | | | isl now understands depth formats. We no longer need depth formats in the anv_format table.
* anv: Rename anv_format::surface_format -> isl_formatChad Versace2016-02-097-13/+13
| | | | Because that's what it is, an isl format.