gallium: add PIPE_CAP_TEXTURE_BARRIER

Same issue as with conditional_render.

Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
Marek Olšák
2011-09-27 23:18:17 +02:00
parent 3d13b081c7
commit ba89086e79
6 changed files with 7 additions and 2 deletions

View File

@@ -137,6 +137,7 @@ nv50_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
case PIPE_CAP_VERTEX_ELEMENT_INSTANCE_DIVISOR: case PIPE_CAP_VERTEX_ELEMENT_INSTANCE_DIVISOR:
case PIPE_CAP_MIXED_COLORBUFFER_FORMATS: case PIPE_CAP_MIXED_COLORBUFFER_FORMATS:
case PIPE_CAP_CONDITIONAL_RENDER: case PIPE_CAP_CONDITIONAL_RENDER:
case PIPE_CAP_TEXTURE_BARRIER:
return 1; return 1;
default: default:
NOUVEAU_ERR("unknown PIPE_CAP %d\n", param); NOUVEAU_ERR("unknown PIPE_CAP %d\n", param);

View File

@@ -125,6 +125,7 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
case PIPE_CAP_VERTEX_ELEMENT_INSTANCE_DIVISOR: case PIPE_CAP_VERTEX_ELEMENT_INSTANCE_DIVISOR:
case PIPE_CAP_MIXED_COLORBUFFER_FORMATS: case PIPE_CAP_MIXED_COLORBUFFER_FORMATS:
case PIPE_CAP_CONDITIONAL_RENDER: case PIPE_CAP_CONDITIONAL_RENDER:
case PIPE_CAP_TEXTURE_BARRIER:
return 1; return 1;
default: default:
NOUVEAU_ERR("unknown PIPE_CAP %d\n", param); NOUVEAU_ERR("unknown PIPE_CAP %d\n", param);

View File

@@ -115,6 +115,7 @@ static int r300_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
case PIPE_CAP_TGSI_FS_COORD_ORIGIN_UPPER_LEFT: case PIPE_CAP_TGSI_FS_COORD_ORIGIN_UPPER_LEFT:
case PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_HALF_INTEGER: case PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_HALF_INTEGER:
case PIPE_CAP_CONDITIONAL_RENDER: case PIPE_CAP_CONDITIONAL_RENDER:
case PIPE_CAP_TEXTURE_BARRIER:
return 1; return 1;
/* r300 cannot do swizzling of compressed textures. Supported otherwise. */ /* r300 cannot do swizzling of compressed textures. Supported otherwise. */

View File

@@ -360,6 +360,7 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
case PIPE_CAP_FRAGMENT_COLOR_CLAMP_CONTROL: case PIPE_CAP_FRAGMENT_COLOR_CLAMP_CONTROL:
case PIPE_CAP_PRIMITIVE_RESTART: case PIPE_CAP_PRIMITIVE_RESTART:
case PIPE_CAP_CONDITIONAL_RENDER: case PIPE_CAP_CONDITIONAL_RENDER:
case PIPE_CAP_TEXTURE_BARRIER:
return 1; return 1;
/* Supported except the original R600. */ /* Supported except the original R600. */

View File

@@ -471,7 +471,8 @@ enum pipe_cap {
PIPE_CAP_SCALED_RESOLVE = 49, PIPE_CAP_SCALED_RESOLVE = 49,
PIPE_CAP_MIN_TEXEL_OFFSET = 50, PIPE_CAP_MIN_TEXEL_OFFSET = 50,
PIPE_CAP_MAX_TEXEL_OFFSET = 51, PIPE_CAP_MAX_TEXEL_OFFSET = 51,
PIPE_CAP_CONDITIONAL_RENDER = 52 PIPE_CAP_CONDITIONAL_RENDER = 52,
PIPE_CAP_TEXTURE_BARRIER = 53
}; };
/* Shader caps not specific to any single stage */ /* Shader caps not specific to any single stage */

View File

@@ -611,7 +611,7 @@ void st_init_extensions(struct st_context *st)
ctx->Extensions.ARB_sync = GL_TRUE; ctx->Extensions.ARB_sync = GL_TRUE;
} }
if (st->pipe->texture_barrier) { if (screen->get_param(screen, PIPE_CAP_TEXTURE_BARRIER)) {
ctx->Extensions.NV_texture_barrier = GL_TRUE; ctx->Extensions.NV_texture_barrier = GL_TRUE;
} }