summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* nir: Add a helper for getting the one function from a shaderJason Ekstrand2016-02-171-0/+9
|
* nir: Add a nir_foreach_variable_safe helperJason Ekstrand2016-02-171-0/+3
|
* i965/nir: Do lower_io late for fragment shadersJason Ekstrand2016-02-173-2/+6
|
* anv/gen7_pipeline: Set WriteDisable = true if we have no color attachmentsJason Ekstrand2016-02-171-5/+5
|
* anv/gen8_pipeline: Default color attachments to WriteDisable = trueJason Ekstrand2016-02-171-0/+7
|
* 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]>
* spirv: Fix SpvOpFwidth, SpvOpFwidthFine and SpvOpFwidthCoarseKristian Høgsberg Kristensen2016-02-171-3/+3
| | | | | | | "Result is the same as computing the sum of the absolute values of OpDPdx and OpDPdy on P." We were doing sum of absolute values of OpDPdx of P and OpDPdx of NULL.
* 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-165-13/+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: Pull Khronos stuff from the READMEJason Ekstrand2016-02-161-8/+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...
* nir: Get rid of the C++ NIR_SRC/DEST_INIT macrosJason Ekstrand2016-02-121-10/+2
| | | | | | These were originally added to reduce compiler warnings but aren't really needed. Getting rid of them reduces the diff between the Vulkan branch and master, so we might as well.
* 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
|
* nir/spirv/glsl: Clean up the row-skipping swizzle logic a bitJason Ekstrand2016-02-121-10/+4
|
* 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
|
* nir/spirv: Allow the clip distance capability.Jason Ekstrand2016-02-111-0/+1
|
* gen8/pipeline: Pull gs_vertex_count from prog_dataJason Ekstrand2016-02-113-3/+1
|
* Merge remote-tracking branch 'mesa-public/master' into vulkanJason Ekstrand2016-02-1160-1636/+976
|\
| * i965/gs: Pass VerticesIn though prog_dataJason Ekstrand2016-02-113-1/+5
| | | | | | | | Reviewed-by: Kenneth Graunke <[email protected]>
| * i965/fs: Pass usage of depth, W, and sample mask through prog_dataJason Ekstrand2016-02-116-20/+30
| | | | | | | | | | | | | | | | | | | | We really need to stop pulling information directly out of shaders for state setup. For one thing, if we want any sort of an on-disk shader cache, having all of this metadata in one place is going to be crucial. Also, passing it all through prog_data cleans up the compiler <-> state setup API substantially. Reviewed-by: Kenneth Graunke <[email protected]>