| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
The helper to fill out the image params data-structure is stilly a dummy,
but this puts the infastructure in place.
|
| |
|
|
|
|
|
| |
Thanks to hardware limitations, storage images may need a different surface
format and/or other bits in the surface state.
|
| |
|
|
|
|
| |
This conflicts with the way we're doing uniforms in Vulkan.
|
| |
|
|
|
|
|
|
| |
Reduce the number of function parameters. Deduce the
anv_image::*_surface from the parameters instead of requiring the caller
to do that.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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().
|
|
|
|
|
| |
Function anv_gem_set_tiling() ignored its 'tiling' parameter. It
unconditionally set the bo's tiling to I915_TILING_X.
|
|
|
|
| |
This is no longer needed after migrating to isl.
|
|
|
|
|
| |
To disable optimizations pass CFLAGS="-O0 -g" on the configure command
line.
|
|
|
|
| |
These will be in their own library eventually - let's just do that now.
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
| |
This fixes out-of-tree builds and closes #1
|
|
|
|
| |
No functional difference, but lets be consistent with the kernel API.
|
| |
|
| |
|
|
|
|
| |
This gives us the required characteristics for the memory type.
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
We'll do a runtime switch on device->info.has_llc for now.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
This reduces struct anv_surface to just two members: an offset and the
embedded isl_surf.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Fix for VkGetImageSubresourceLayout.
|
| |
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
| |
The initial implementation in the 0.210.0 API update was misguieded as to
what the access flags meant. This should be more correct.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
By and large, this is just moving enum values around. However, it also
removed VK_UNSUPPORTED which we were returning a number of places. Those
places now return VK_ERROR_INCOMPATABLE_DRIVER.
|
|
|
|
|
|
| |
This made for an unfortunately large amount of work since we were using it
fairly heavily internally. However, gl_shader_stage does basically the
same things, so it's not too bad.
|
| |
|
| |
|
| |
|
| |
|