summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Move isl to src/intelJason Ekstrand2016-02-1827-6/+4
|
* vulkan: Move XML and generator into src/intel/genxmlJason Ekstrand2016-02-1822-33/+82
|
* anv/meta: Initialize blend state for the right attachmentKristian Høgsberg Kristensen2016-02-181-10/+11
| | | | | We were always initializing only RT 0. We need to initialize the RT we're creating the clear pipeline for.
* anv/meta: Don't use the blit ds layout in resolve codeKristian Høgsberg Kristensen2016-02-181-1/+1
|
* Delete nir_lower_samplers.cppJason Ekstrand2016-02-171-248/+0
| | | | | Somehow, in one of the merges with mesa master, the old file must have been kept when nir_lower_samplers.cpp was moved to nir_lower_samplers.c.
* anv: Gut anv_pipeline_layoutJason Ekstrand2016-02-172-97/+13
| | | | | Almost none of the data in anv_pipeline_layout is used anymore thanks to doing real layout in the pipeline itself.
* anv: Build the real pipeline layout in the pipelineKristian Høgsberg Kristensen2016-02-176-118/+201
| | | | | | | | | This gives us the chance to pack the binding table down to just what the shaders actually need. Some applications use very large descriptor sets and only ever use a handful of entries. Compacted binding tables should be much more efficient in this case. It comes at the down-side of having to re-emit binding tables every time we switch pipelines, but that's considered an acceptable cost.
* nir/spirv: Add some more capabilitiesJason Ekstrand2016-02-171-2/+9
|
* anv/pipeline: Delete out-of-bounds fragment shader outputsJason Ekstrand2016-02-171-0/+13
|
* 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.