freedreno/a5xx: ARB_framebuffer_no_attachments support

Signed-off-by: Rob Clark <robdclark@gmail.com>
This commit is contained in:
Rob Clark 2017-11-15 09:56:38 -05:00
parent 8d48671492
commit 2878af74dd
3 changed files with 11 additions and 1 deletions

View File

@ -73,6 +73,11 @@ fd5_screen_is_format_supported(struct pipe_screen *pscreen,
PIPE_BIND_SHARED);
}
/* For ARB_framebuffer_no_attachments: */
if ((usage & PIPE_BIND_RENDER_TARGET) && (format == PIPE_FORMAT_NONE)) {
retval |= usage & PIPE_BIND_RENDER_TARGET;
}
if ((usage & PIPE_BIND_DEPTH_STENCIL) &&
(fd5_pipe2depth(format) != (enum a5xx_depth_format)~0) &&
(fd5_pipe2tex(format) != (enum a5xx_tex_fmt)~0)) {

View File

@ -397,6 +397,11 @@ fd_gmem_render_tiles(struct fd_batch *batch)
} else if (!(fd_mesa_debug & FD_DBG_NOBYPASS)) {
sysmem = true;
}
/* For ARB_framebuffer_no_attachments: */
if ((pfb->nr_cbufs == 0) && !pfb->zsbuf) {
sysmem = true;
}
}
fd_reset_wfi(batch);

View File

@ -295,7 +295,6 @@ fd_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
case PIPE_CAP_TGSI_FS_FACE_IS_INTEGER_SYSVAL:
case PIPE_CAP_GENERATE_MIPMAP:
case PIPE_CAP_SURFACE_REINTERPRET_BLOCKS:
case PIPE_CAP_FRAMEBUFFER_NO_ATTACHMENT:
case PIPE_CAP_ROBUST_BUFFER_ACCESS_BEHAVIOR:
case PIPE_CAP_CULL_DISTANCE:
case PIPE_CAP_PRIMITIVE_RESTART_FOR_PATCHES:
@ -330,6 +329,7 @@ fd_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
return 0;
case PIPE_CAP_DRAW_INDIRECT:
case PIPE_CAP_FRAMEBUFFER_NO_ATTACHMENT:
if (is_a5xx(screen))
return 1;
return 0;