freedreno/a4xx: add ARB_framebuffer_no_attachments support

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Rob Clark <robdclark@gmail.com>
This commit is contained in:
Ilia Mirkin 2017-11-19 16:36:08 -05:00
parent 4f748d12e8
commit f39a91c152
3 changed files with 8 additions and 3 deletions

View File

@ -172,7 +172,7 @@ GL 4.3, GLSL 4.30 -- all DONE: i965/gen8+, nvc0, radeonsi
GL_KHR_debug DONE (all drivers)
GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
GL_ARB_fragment_layer_viewport DONE (i965, nv50, r600, llvmpipe, softpipe)
GL_ARB_framebuffer_no_attachments DONE (freedreno/a5xx, i965, r600, softpipe)
GL_ARB_framebuffer_no_attachments DONE (freedreno, i965, r600, softpipe)
GL_ARB_internalformat_query2 DONE (all drivers)
GL_ARB_invalidate_subdata DONE (all drivers)
GL_ARB_multi_draw_indirect DONE (freedreno, i965, r600, llvmpipe, softpipe, swr)
@ -244,7 +244,7 @@ GLES3.1, GLSL ES 3.1 -- all DONE: i965/hsw+, nvc0, radeonsi
GL_ARB_compute_shader DONE (freedreno/a5xx, i965/gen7+, softpipe)
GL_ARB_draw_indirect DONE (freedreno, i965/gen7+, r600, llvmpipe, softpipe, swr)
GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL)
GL_ARB_framebuffer_no_attachments DONE (freedreno/a5xx, i965/gen7+, r600, softpipe)
GL_ARB_framebuffer_no_attachments DONE (freedreno, i965/gen7+, r600, softpipe)
GL_ARB_program_interface_query DONE (all drivers)
GL_ARB_shader_atomic_counters DONE (freedreno/a5xx, i965/gen7+, r600, softpipe)
GL_ARB_shader_image_load_store DONE (freedreno/a5xx, i965/gen7+, r600, softpipe)

View File

@ -75,6 +75,11 @@ fd4_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) &&
(fd4_pipe2depth(format) != (enum a4xx_depth_format)~0) &&
(fd4_pipe2tex(format) != (enum a4xx_tex_fmt)~0)) {

View File

@ -338,7 +338,7 @@ fd_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
return 0;
case PIPE_CAP_FRAMEBUFFER_NO_ATTACHMENT:
if (is_a5xx(screen))
if (is_a4xx(screen) || is_a5xx(screen))
return 1;
return 0;