summaryrefslogtreecommitdiffstats
path: root/src/vulkan
Commit message (Collapse)AuthorAgeFilesLines
* gen8/pipeline: Support vec4 vertex shadersJason Ekstrand2015-12-111-3/+6
| | | | In order to actually get them, you need INTEL_DEBUG=vec4.
* anv/pipeline: Get rid of the no kernel input parameters hackJason Ekstrand2015-12-101-9/+0
| | | | | | | | Previously, meta would pass null shaders in for the VS when it intended to disable the VS. However, this meant that we didn't know what inputs we had and would dead-code things in the FS. In order to solve this, we hard-coded a number. Now meta passes in a VS even if it plans to disable the stage so this is no longer needed.
* anv/apply_pipeline_layout: Multiply uniform sizes by 4Jason Ekstrand2015-12-101-2/+2
| | | | This is because uniforms are now in terms of bytes everywhere.
* gen8/cmd_buffer: Don't push CS constants if there aren't anyJason Ekstrand2015-12-101-3/+5
| | | | Issuing MEDIA_CURB_LOAD with a size of zero causes GPU hangs on BDW.
* anv: Use 4 instead of sizeof(gl_constant_value)Jason Ekstrand2015-12-102-2/+2
| | | | | We no longer have access to gl_constant_value and, really, it's 4 because our uniform layout code works entirely in dwords.
* Merge remote-tracking branch 'mesa-public/master' into vulkanJason Ekstrand2015-12-105-114/+35
| | | | | This pulls in nir_intrinsic_load/store changes and the switch of all uniforms in i965 to bytes. This accounts for the Vulkan changes.
* anv/icd: Advertise the right ABI versionJason Ekstrand2015-12-101-1/+1
|
* anv/image: Remove some vkCreateImage validationChad Versace2015-12-091-26/+0
| | | | | | Don't validate the baseArrayLayer and layerCount of cube images. This allows us to remove a bloated lookup table and an unneeded struct definition (anv_image_view_info).
* anv/image: Drop unused halign, valign lookup tablesChad Versace2015-12-091-12/+0
|
* gen8/compute: Setup push constants and local idsJordan Justen2015-12-091-0/+20
| | | | Signed-off-by: Jordan Justen <[email protected]>
* anv: Add anv_cmd_buffer_cs_push_constantsJordan Justen2015-12-092-0/+56
| | | | | | | | | Similar to anv_cmd_buffer_push_constants, but handles the compute pipeline, which requires different setup from the other stages. This also handles initializing the compute shader local IDs. Signed-off-by: Jordan Justen <[email protected]>
* anv/compute: Fix thread width max off by 1Jordan Justen2015-12-082-4/+4
| | | | | | | | | | | | See cooresponding code in: commit 8d87070af295140fb3558b6784dc6303fde11a67 Author: Jordan Justen <[email protected]> Date: Thu Aug 28 14:47:19 2014 -0700 i965/cs: Implement brw_emit_gpgpu_walker Signed-off-by: Jordan Justen <[email protected]>
* anv: Remove unused anv_image_view_info_for_vk_image_view_type()Chad Versace2015-12-082-15/+6
|
* gen8/cmd_buffer: Flush push constants after descriptor setsJason Ekstrand2015-12-071-3/+3
| | | | | This is because, if storage images are used, flushing descriptor sets can cause push constants to become dirty.
* anv: Add initial support for pushing image paramsJason Ekstrand2015-12-076-2/+124
| | | | | The helper to fill out the image params data-structure is stilly a dummy, but this puts the infastructure in place.
* anv/descriptor_set: Add support for storage images in layoutsJason Ekstrand2015-12-072-2/+23
|
* anv/image: Add a separate storage image surface stateJason Ekstrand2015-12-074-2/+43
| | | | | Thanks to hardware limitations, storage images may need a different surface format and/or other bits in the surface state.
* isl: Add initial support for storage imagesJason Ekstrand2015-12-073-0/+143
|
* anv/pipeline: Only apply a pipeline layout if we have oneJason Ekstrand2015-12-071-1/+2
|
* anv/image: Refactor anv_image_make_surface()Chad Versace2015-12-071-28/+38
| | | | | | Reduce the number of function parameters. Deduce the anv_image::*_surface from the parameters instead of requiring the caller to do that.
* anv: Assert the succes of isl_surf_init()Chad Versace2015-12-071-1/+7
|
* anv: Use isl_tiling_flags in anv_image_create_infoChad Versace2015-12-075-26/+11
| | | | | | | | | | | Replace anv_image_create_info::force_tiling anv_image_create_info::tiling with the bitmask anv_image_create_info::isl_tiling_flags This allows us to drop the function anv_image.c:choose_isl_tiling_flags().
* anv: Fix anv_gem_set_tiling to respect tiling paramChad Versace2015-12-071-1/+1
| | | | | Function anv_gem_set_tiling() ignored its 'tiling' parameter. It unconditionally set the bo's tiling to I915_TILING_X.
* anv: Remove unused anv_format_s8_uintChad Versace2015-12-072-10/+0
| | | | This is no longer needed after migrating to isl.
* vk: Don't override and hardcode autoconf CFLAGSKristian Høgsberg Kristensen2015-12-041-3/+1
| | | | | To disable optimizations pass CFLAGS="-O0 -g" on the configure command line.
* vk: Move isl files to libisl.la helper libraryKristian Høgsberg Kristensen2015-12-041-3/+7
| | | | These will be in their own library eventually - let's just do that now.
* anv/image: Fix choice of isl_surf_usage for depthstencil imagesChad Versace2015-12-041-14/+20
| | | | | | | | Fixes assertion in vkCreateImage when VkFormat is combined depthstencil. Fixed many vulkancts tests that use combined depthstencil. For example, fixes dEQP-VK.pipeline.depth.format.d16_unorm_s8_uint.compare_ops.\ not_equal_less_or_equal_not_equal_greater.
* anv: Add func anv_get_isl_format()Chad Versace2015-12-042-0/+26
|
* anv/image: Delete old ifdef'd out codeChad Versace2015-12-041-32/+0
|
* vk: Add needed builddir subdirectories to the include pathJason Ekstrand2015-12-041-0/+2
| | | | This fixes out-of-tree builds and closes #1
* vk: gem handles are uint32_tKristian Høgsberg Kristensen2015-12-043-19/+19
| | | | No functional difference, but lets be consistent with the kernel API.
* vk: Turn on Bay Trail, Cherryview and Broxton supportKristian Høgsberg2015-12-041-9/+7
|
* vk: Map uncached, coherent memory as write-combineKristian Høgsberg Kristensen2015-12-045-10/+17
| | | | This gives us the required characteristics for the memory type.
* vk: Expose two memory types for non-LLC GPUsKristian Høgsberg Kristensen2015-12-042-10/+37
| | | | | | | | We're required to expose a host-visible, coherent memory type. On big core GPUs that share, LLC, we can expose one such memory type that's also cached. However, on non-LLC GPUs we can't both be cached and coherent. Thus, we expose both the required coherent type and the cached but non-coherent combination.
* vk: clflush all state for non-LLC GPUsKristian Høgsberg2015-12-0413-85/+203
|
* vk: Set I915_CACHING_NONE for userptr BOs when !llcKristian Høgsberg2015-12-043-0/+41
| | | | | | | | | Regular objects are created I915_CACHING_CACHED on LLC platforms and I915_CACHING_NONE on non-LLC platforms. However, userptr objects are always created as I915_CACHING_CACHED, which on non-LLC means snooped. That can be useful but comes with a bit of overheard. Since we're eplicitly clflushing and don't want the overhead we need to turn it off.
* vk: Implement vkFlushMappedMemoryRanges()Kristian Høgsberg2015-12-042-4/+42
| | | | We'll do a runtime switch on device->info.has_llc for now.
* anv/gen9: Fix SURFACE_STATE halign and valignChad Versace2015-12-031-4/+35
| | | | | | | | | | Pre-Skylake, RENDER_SUFFACE_STATE.SurfaceVerticalAlignment is in units of surface samples. A surface sample is equivalent to a pixel in all surfaces except interleaved multisample surfaces. In Skylake, it is in units of surface elements. A surface element is equivalent to a surface sample except for compressed formats, in which case the element is a compression block.
* anv: Embed isl_surf into anv_surfaceChad Versace2015-12-038-61/+39
| | | | | This reduces struct anv_surface to just two members: an offset and the embedded isl_surf.
* anv/image: Drop assertions on SURFTYPE extent limitsChad Versace2015-12-031-22/+0
| | | | | | | | In anv_image_create(), stop asserting that VkImageCreateInfo::extent does not exceed the hardware limits for the given SURFTYPE. The assertions were incorrect because they did not take into account the hardware gen. Anyways, these types of assertions belong in isl, not anvil.
* anv/image: Use isl to calculate surface layoutChad Versace2015-12-031-154/+85
| | | | | | | | Remove the surface layout calculations in anv_image_make_surface(). Let isl_surf_init() do the heavy lifting. Fixes 8 Crucible tests and regresses none. (hw=Broadwell and crucible@33d91ec).
* isl: Implement isl_surf_init() for gen4-gen9Chad Versace2015-12-0314-59/+2966
| | | | | | | | | | | | This is a big code push. The patch is about 3000 lines. Function isl_surf_init() calculates the physical layout of a surface. The implementation is "complete" (but untested) for all 1D, 2D, 3D, and cube surfaces for gen4 through gen9, except: * gen9 1D surfaces * gen9 Ys multisampled surfaces * auxiliary surfaces (such as hiz, mcs, ccs)
* isl: Rename legacy Y tiling to ISL_TILING_Y0Chad Versace2015-12-035-7/+10
| | | | | | | Rename legacy Y tiling from ISL_TILING_Y to ISL_TILING_Y0 in order to clearly distinguish it from Yf and Ys. Using ISL_TILING_Y to denote legacy Y tiling would lead to confusion with i965, because i965 uses I195_TILE_Y to denote *any* Y tiling.
* anv/image: Vulkan's depthPitch is in bytes, not rowsChad Versace2015-12-031-1/+3
| | | | Fix for VkGetImageSubresourceLayout.
* anv/device: Give a version of 0.210.1 in apiVersionJason Ekstrand2015-12-031-1/+1
|
* vk: Add new WSI support and bump the API to 0.210.1Jason Ekstrand2015-12-037-350/+403
|
* anv/entrypoints: Run the headers through the preprocessor firstJason Ekstrand2015-12-032-3/+9
| | | | | | | This allows us to filter based on preprocessor directives. We could build a partial preprocessor into the generator, but we would likely get it wrong. This allows us to filter out, for instance, windows-specific WSI stuff.
* vk/0.210.0: Advertise version 0.210.0Jason Ekstrand2015-12-031-2/+2
|
* vk/0.210.0: Update queries to the new APIJason Ekstrand2015-12-032-30/+53
|
* vk/0.210.0: Fix how we handle access flags in barriersJason Ekstrand2015-12-031-12/+12
| | | | | The initial implementation in the 0.210.0 API update was misguieded as to what the access flags meant. This should be more correct.