| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
The point is to promote a levelCount of 0 to 1 before subtracting 1.
This needs MAX, not MIN.
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
| |
This fixes 486 cubemap CTS tests.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Regarding the subimages within a surface, sometimes isl called them
"images" and sometimes "LODs". This patch make isl consistently refer to
them as "images". I choose the term "image" over "LOD" because LOD is
an misnomer when applied to 3D surfaces. The alignment applies to each
individual 2D subimage, not to the LOD as a whole.
This patch changes no behavior. It's just a manually performed,
case-insensitive, replacement s/lod/image/ that maintains correct
indentation. any behavior.
|
|
|
|
|
| |
Thanks to hardware limitations, storage images may need a different surface
format and/or other bits in the surface state.
|
| |
|
|
|
|
|
| |
This reduces struct anv_surface to just two members: an offset and the
embedded isl_surf.
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
It's currently unused on IVB so we get compiler warnings.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Previously, we were including gen7_pack.h, gen75_pack.h, and gen8_pack.h
in anv_private.h. As we add more gens, this is going to become untenable.
This commit moves things around so that we only use the pack headers when
and if we need them.
|
|
|
|
|
|
|
|
|
| |
In anv_surface and anv_image_create_info, replace member
'uint8_t tile_mode' with 'enum isl_tiling'.
As a nice side-effect, this patch also reduces bug potential because the
hardware enum values for tile modes are unstable across hardware
generations.
|
|
|
|
|
|
| |
The new mechanism should be able to handle SSBOs as well as properly handle
emitting surface state on gen7 where we need different strides depending on
shader stage.
|
|
|
|
|
|
| |
We never *actually* supported them, we just used them for binding UBOs.
Now that we have BufferInfo and we aren't supporting texture buffers yet,
we should get rid of them until we can do them properly.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This prepares for merging VkAttachmentView into VkImageView. The two
surface states are:
anv_image_view::color_rt_surface_state:
RENDER_SURFACE_STATE when using image as a color render target.
anv_image_view::nonrt_surface_state;
RENDER_SURFACE_STATE when using image as a non render target.
No Crucible regressions.
|
|
|
|
|
| |
It's a copy of VkImageCreateInfo::usage. Will be used for the
VkAttachmentView/VkImageView merge.
|
| |
|
|
|
|
| |
This prepares for merging VkAttachmentView into VkImageView.
|
| |
|
| |
|
|
|
|
|
|
| |
Remove anv_color_attachment_view and anv_depth_stencil_view, merging
them into anv_attachment_view. This prepares for merging
VkAttachmentView into VkImageView.
|
|
|
|
| |
It's duplicated by anv_attachment_view::image_view::extent.
|
|
|
|
|
|
|
|
|
|
|
| |
Push the members of struct anv_surface_view into anv_image_view and
anv_buffer_view, then remove struct anv_surface_view. Observe that
anv_surface_view::range is not needed for anv_image_view, and so was
dropped there.
This prepares for the merge of VkAttachmentView into VkImageView. Remove
the common parent of anv_buffer_view and anv_image_view (that is,
anv_surface_view) will make the merge easier.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rename all anv_*_view variables to follow this convention:
- sview -> anv_surface_view
- bview -> anv_buffer_view
- iview -> anv_image_view
- aview -> anv_attachment_view
- cview -> anv_color_attachment_view
- ds_view -> anv_depth_stencil_attachment_view
This clarifies existing code. And it will reduce noise in the upcoming
commits that merge VkAttachmentView into VkImageView.
|
|
|
|
|
| |
The struct is only 2 bytes. Returning it on the stack is better than
returning a reference into the ELF .data segment.
|
|
|
|
| |
Replace 'aspect' with 'aspectMask'.
|
|
|
|
|
| |
Split anv_image::primary_surface into two: anv_image::color_surface and
depth_surface.
|
|
|
|
|
|
|
| |
This field in surface state is a bool, WriteOnlyCache is an enum from
GEN8.
Signed-off-by: Kristian Høgsberg Kristensen <[email protected]>
|
|
|
|
|
|
|
| |
You wouldn't think the TileWalk mode matters when TiledSurface is
false. However, it has to be TILEWALK_XMAJOR. Make it so.
Signed-off-by: Kristian Høgsberg Kristensen <[email protected]>
|
|
With all the previous commits in place, we can now drop in support for
multiple platforms. First up is gen7 (Ivybridge).
Signed-off-by: Kristian Høgsberg Kristensen <[email protected]>
|