vk: Fix stride of stencil buffers
Stencil buffers have strange pitch. The PRM says: The pitch must be set to 2x the value computed based on width, as the stencil buffer is stored with two rows interleaved.
This commit is contained in:
parent
31af126229
commit
14e1d58fb7
|
@ -585,7 +585,14 @@ gen7_cmd_buffer_emit_depth_stencil(struct anv_cmd_buffer *cmd_buffer)
|
||||||
if (has_stencil) {
|
if (has_stencil) {
|
||||||
anv_batch_emit(&cmd_buffer->batch, GEN7_3DSTATE_STENCIL_BUFFER,
|
anv_batch_emit(&cmd_buffer->batch, GEN7_3DSTATE_STENCIL_BUFFER,
|
||||||
.StencilBufferObjectControlState = GEN7_MOCS,
|
.StencilBufferObjectControlState = GEN7_MOCS,
|
||||||
.SurfacePitch = image->stencil_surface.stride - 1,
|
|
||||||
|
/* Stencil buffers have strange pitch. The PRM says:
|
||||||
|
*
|
||||||
|
* The pitch must be set to 2x the value computed based on width,
|
||||||
|
* as the stencil buffer is stored with two rows interleaved.
|
||||||
|
*/
|
||||||
|
.SurfacePitch = 2 * image->stencil_surface.stride - 1,
|
||||||
|
|
||||||
.SurfaceBaseAddress = {
|
.SurfaceBaseAddress = {
|
||||||
.bo = image->bo,
|
.bo = image->bo,
|
||||||
.offset = image->offset + image->stencil_surface.offset,
|
.offset = image->offset + image->stencil_surface.offset,
|
||||||
|
|
|
@ -520,7 +520,14 @@ gen8_cmd_buffer_emit_depth_stencil(struct anv_cmd_buffer *cmd_buffer)
|
||||||
anv_batch_emit(&cmd_buffer->batch, GEN8_3DSTATE_STENCIL_BUFFER,
|
anv_batch_emit(&cmd_buffer->batch, GEN8_3DSTATE_STENCIL_BUFFER,
|
||||||
.StencilBufferEnable = true,
|
.StencilBufferEnable = true,
|
||||||
.StencilBufferObjectControlState = GEN8_MOCS,
|
.StencilBufferObjectControlState = GEN8_MOCS,
|
||||||
.SurfacePitch = image->stencil_surface.stride - 1,
|
|
||||||
|
/* Stencil buffers have strange pitch. The PRM says:
|
||||||
|
*
|
||||||
|
* The pitch must be set to 2x the value computed based on width,
|
||||||
|
* as the stencil buffer is stored with two rows interleaved.
|
||||||
|
*/
|
||||||
|
.SurfacePitch = 2 * image->stencil_surface.stride - 1,
|
||||||
|
|
||||||
.SurfaceBaseAddress = {
|
.SurfaceBaseAddress = {
|
||||||
.bo = image->bo,
|
.bo = image->bo,
|
||||||
.offset = image->offset + image->stencil_surface.offset,
|
.offset = image->offset + image->stencil_surface.offset,
|
||||||
|
|
Loading…
Reference in New Issue