summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* spirv/nir: Handle non-vector extractions in vtn_composite_extractJason Ekstrand2015-12-231-0/+2
|
* nir/spirv: Handle function callsJason Ekstrand2015-12-232-7/+84
|
* nir: Create the params array in function_impl_createJason Ekstrand2015-12-231-0/+4
|
* i965/nir: Remove return handlingJason Ekstrand2015-12-232-13/+0
| | | | | This was added because we were getting spurrious returns coming out of SPIR-V. Now that we're calling lower_returns, we don't need this.
* anv/pipeline: Run lower_returns and inline_functions after spirv_to_nirJason Ekstrand2015-12-231-8/+20
|
* nir: Add a function inlining passJason Ekstrand2015-12-233-0/+142
|
* nir/builder: Add a copy_deref_var helperJason Ekstrand2015-12-231-0/+13
|
* nir: move nir_copy_var from anv_nir_builder to nir_builderJason Ekstrand2015-12-232-10/+10
|
* nir/clone: Add support for cloning a single function_implJason Ekstrand2015-12-232-33/+81
| | | | This will be useful for things such as function inlining.
* nir: Add a helper for creating a "bare" nir_function_implJason Ekstrand2015-12-232-10/+21
| | | | | This is useful if you want to clone a single function_impl if, for instance, you wanted to do function inlining.
* nir/control_flow: Handle relinking top-level blocksJason Ekstrand2015-12-231-2/+5
| | | | | This can happen if a function ends in a return instruction and you remove the return.
* nir: Add a stub function inlining passJason Ekstrand2015-12-233-0/+82
| | | | | All it does is remove the return at the end, but it's good enough for simple functions.
* nir/print: Factor variable name lookup into a helperJason Ekstrand2015-12-231-30/+31
| | | | | | Otherwise, we have a problem when we go to print functions with arguments because their names get added to the hash table during declaration which happens after we print the prototype.
* vk: Only require wc bo mmap for !llc GPUsKristian Høgsberg Kristensen2015-12-191-1/+2
|
* vk: Remove stale 48 bit addresses FIXMEsKristian Høgsberg Kristensen2015-12-191-5/+2
| | | | This has worked fine for a long time.
* vk/gen8: Implement VkEvent for gen8Kristian Høgsberg Kristensen2015-12-195-42/+166
| | | | | We use PIPE_CONTROL for setting and resetting the event from cmd buffers and MI_SEMAPHORE_WAIT in polling mode for waiting on an event.
* vk: Fix check for I915_PARAM_MMAP_VERSIONKristian Høgsberg Kristensen2015-12-181-1/+1
| | | | Comparing the wrong thing for < 1.
* anv/gen8: Add support for gl_NumWorkGroupsJordan Justen2015-12-184-7/+67
| | | | | Co-authored-by: Kristian Høgsberg <krh@bitplanet.net> Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
* nir/spirv: Array lengths are constants not literalsJason Ekstrand2015-12-171-2/+8
|
* anv/formats: Add more 64-bit formatsJason Ekstrand2015-12-171-0/+8
|
* anv/formats: Add more PACK32 formatsJason Ekstrand2015-12-171-8/+15
|
* anv/image: Properly report buffer featuresJason Ekstrand2015-12-171-3/+20
|
* isl: Add a is_storage_image_format helperJason Ekstrand2015-12-172-0/+53
|
* anv/device: Handle zero-sized memory allocationsJason Ekstrand2015-12-171-4/+31
|
* anv/state: Allow levelCount to be 0Jason Ekstrand2015-12-162-4/+4
| | | | | This can happen if the client is creating an image view of a textureable surface and they only ever intend to render to that view.
* nir/spirv: Add a missing break statementJason Ekstrand2015-12-151-0/+1
|
* anv/pipeline: Allow the user to pass a null MultisampleCreateInfoJason Ekstrand2015-12-151-1/+0
| | | | | According to section 5.2 of the Vulkan spec, this is allowed for color-only rendering pipelines.
* anv/descriptor_set: Initialize immutable_samplers to NULLJason Ekstrand2015-12-151-3/+6
| | | | | | | | Previously this wasn't a problem. However, with the new API update, descriptor sets can now be sparse so the client doesn't have to provide an entry for every binding. This means that it's possible for a binding to be uninitialized other than the memset. In that case, we want to have a null array of immutable samplers.
* anv/device: Bump the size of the instruction block poolJason Ekstrand2015-12-151-1/+1
| | | | | | Some CTS test shaders were failing to compile. At some point soon, we really need to make a real pipeline cache and stop using a block pool for this.
* anv/pipeline: Properly set IncludeVertexHandles in 3DSTATE_GSJason Ekstrand2015-12-152-0/+2
|
* nir/spirv: Add support for more CS intrinsicsJason Ekstrand2015-12-151-5/+24
|
* nir/lower_system_values: Add support for computed builtins.Jason Ekstrand2015-12-151-3/+55
| | | | | In particular, this commit adds support for computing gl_GlobalInvocationID and gl_LocalInvocationIndex from other intrinsics.
* shader_enums: Add enums for gl_GlobalInvocationID and gl_LocalInvocationIndexJason Ekstrand2015-12-152-0/+4
|
* nir/lower_system_values: Refactor and use the builder.Jason Ekstrand2015-12-151-29/+31
| | | | | | | Now that we have a helper in the builder for system values and a helper in core NIR to get the intrinsic opcode, there's really no point in having things split out into a helper function. This commit "modernizes" this pass to use helpers better and look more like newer passes.
* nir/builder: Add a load_system_value helperJason Ekstrand2015-12-152-10/+15
| | | | | | While we're at it, go ahead and make nir_lower_clip use it. Cc: Rob Clark <robclark@gmail.com>
* nir/lower_system_values: Stop supporting non-SSAJason Ekstrand2015-12-151-8/+6
| | | | The one user of this (i965) only ever calls it while in SSA form.
* isl: Add func isl_surf_get_image_offset_saChad Versace2015-12-155-2/+357
| | | | | | | | The function calculates the offset to a subimage within the surface, in units of surface samples. All unit tests pass with `make check`. (Admittedly, though, there are too few unit tests).
* isl: Fix calculation of array pitch for layout GEN4_2DChad Versace2015-12-151-0/+1
| | | | | | | The height of the miptree's right half was not large enough. Found by `make check` in test_isl_surf_get_offset, which is added in the next commit.
* isl: Move it a standalone directoryChad Versace2015-12-1522-28/+75
| | | | | | | | | | | | The plan all along was to eventualyl move isl out of the Vulkan directory, because I intended i965 and anvil to share it. A small problem I encountered when attempting to write unit tests for isl precipitated the move. I discovered that it's easier to get isl unit tests to build if I remove the extra, unneeded dependencies injected by src/vulkan/Makefile.am. And the easiest way to remove those unneeded dependencies is to move isl out of src/vulkan. (Unit tests come in subsequent commits).
* vec4/generator: Actually pass the sampler into generate_texJason Ekstrand2015-12-141-1/+1
| | | | | | This is an artifact of the way the separate samplers/textures series ended up getting sent out and rebased. This should fix a number of CTS tests involving geometry shaders.
* anv: Rename gs_vec4 to gs_kernelJordan Justen2015-12-144-9/+9
| | | | | | | | | | | | | | | | The code generated may be vec4 or simd8 depending on how we start the compiler. To run the GS in SIMD8, set the INTEL_SCALAR_GS environment variable. This was added in: commit 36fd65381756ed1b8f774f7fcdd555941a3d39e1 Author: Kenneth Graunke <kenneth@whitecape.org> Date: Wed Mar 11 23:14:31 2015 -0700 i965: Add scalar geometry shader support. Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
* nir/spirv_to_nir: Use a minimum of 1 for GS invocationsJordan Justen2015-12-141-1/+1
| | | | | | | glslang is giving us 0, which causes the SIMD8 GS compile to hit an assert. Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
* anv: Fix CUBE storage imagesJason Ekstrand2015-12-142-6/+14
|
* anv: Add support for storage texel buffersJason Ekstrand2015-12-145-13/+78
|
* anv: Pass an isl_format into fill_buffer_surface_stateJason Ekstrand2015-12-146-12/+13
|
* anv/cmd_buffer: Gen 8 requires 64 byte alignment for push constant dataJordan Justen2015-12-141-2/+6
| | | | | | See MEDIA_CURBE_LOAD, CURBE Data Start Address & CURBE Total Data Length Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
* anv: Add initial support for cube mapsJason Ekstrand2015-12-142-4/+4
| | | | This fixes 486 cubemap CTS tests.
* anv/buffer_view: Store a bo + offset instead of buffer pointerJason Ekstrand2015-12-143-5/+9
| | | | | | | | This is what image_view does. Also, we really need to do this so that we can properly handle the combined offsets from the buffer and from pCreateInfo. This fixes some of the nonzero offset buffer view CTS tests.
* anv: Remove anv_image::surface_typeChad Versace2015-12-144-15/+50
| | | | | | | | | | | | | | When building RENDER_SURFACE_STATE, the driver set SurfaceType = anv_image::surface_type, which was calculated during anv_image_init(). This was bad because the value of anv_image::surface_type was taken from a gen-specific header, gen8_pack.h, even though the anv_image structure is used for all gens. Replace anv_image::surface_type with a gen-specific lookup function, anv_surftype(), defined in gen${x}_state.c. The lookup function contains some useful asserts that caught some nasty bugs in anv meta, which were fixed in the previous commit.
* anv/meta: Fix VkImageViewTypeChad Versace2015-12-143-27/+17
| | | | | | | | | | | Meta unconditionally used VK_IMAGE_VIEW_TYPE_2D in the functions below. This caused some out-of-bound memory accesses. anv_CmdCopyImage anv_CmdBlitImage anv_CmdCopyBufferToImage anv_CmdClearColorImage Fix it by adding a new function, anv_meta_get_view_type().