diff options
Diffstat (limited to 'mesalib/src/mesa/state_tracker')
-rw-r--r-- | mesalib/src/mesa/state_tracker/st_cb_bufferobjects.c | 9 | ||||
-rw-r--r-- | mesalib/src/mesa/state_tracker/st_cb_drawpixels.c | 4 | ||||
-rw-r--r-- | mesalib/src/mesa/state_tracker/st_cb_eglimage.c | 2 | ||||
-rw-r--r-- | mesalib/src/mesa/state_tracker/st_cb_fbo.c | 4 | ||||
-rw-r--r-- | mesalib/src/mesa/state_tracker/st_cb_texture.c | 18 | ||||
-rw-r--r-- | mesalib/src/mesa/state_tracker/st_extensions.c | 19 | ||||
-rw-r--r-- | mesalib/src/mesa/state_tracker/st_format.c | 514 | ||||
-rw-r--r-- | mesalib/src/mesa/state_tracker/st_format.h | 6 | ||||
-rw-r--r-- | mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 2 | ||||
-rw-r--r-- | mesalib/src/mesa/state_tracker/st_manager.c | 6 | ||||
-rw-r--r-- | mesalib/src/mesa/state_tracker/st_program.c | 19 | ||||
-rw-r--r-- | mesalib/src/mesa/state_tracker/st_vdpau.c | 6 |
12 files changed, 313 insertions, 296 deletions
diff --git a/mesalib/src/mesa/state_tracker/st_cb_bufferobjects.c b/mesalib/src/mesa/state_tracker/st_cb_bufferobjects.c index ac8d0798a..c8f088dc8 100644 --- a/mesalib/src/mesa/state_tracker/st_cb_bufferobjects.c +++ b/mesalib/src/mesa/state_tracker/st_cb_bufferobjects.c @@ -229,7 +229,8 @@ st_bufferobj_data(struct gl_context *ctx, case GL_STATIC_DRAW: case GL_STATIC_READ: case GL_STATIC_COPY: - pipe_usage = PIPE_USAGE_STATIC; + default: + pipe_usage = PIPE_USAGE_DEFAULT; break; case GL_DYNAMIC_DRAW: case GL_DYNAMIC_READ: @@ -241,8 +242,6 @@ st_bufferobj_data(struct gl_context *ctx, case GL_STREAM_COPY: pipe_usage = PIPE_USAGE_STREAM; break; - default: - pipe_usage = PIPE_USAGE_DEFAULT; } pipe_resource_reference( &st_obj->buffer, NULL ); @@ -436,6 +435,6 @@ st_init_bufferobject_functions(struct dd_function_table *functions) functions->CopyBufferSubData = st_copy_buffer_subdata; /* For GL_APPLE_vertex_array_object */ - functions->NewArrayObject = _mesa_new_array_object; - functions->DeleteArrayObject = _mesa_delete_array_object; + functions->NewArrayObject = _mesa_new_vao; + functions->DeleteArrayObject = _mesa_delete_vao; } diff --git a/mesalib/src/mesa/state_tracker/st_cb_drawpixels.c b/mesalib/src/mesa/state_tracker/st_cb_drawpixels.c index 97f213077..90f34e39e 100644 --- a/mesalib/src/mesa/state_tracker/st_cb_drawpixels.c +++ b/mesalib/src/mesa/state_tracker/st_cb_drawpixels.c @@ -483,7 +483,7 @@ make_texture(struct st_context *st, { struct gl_context *ctx = st->ctx; struct pipe_context *pipe = st->pipe; - gl_format mformat; + mesa_format mformat; struct pipe_resource *pt; enum pipe_format pipeFormat; GLenum baseInternalFormat; @@ -542,7 +542,7 @@ make_texture(struct st_context *st, */ success = _mesa_texstore(ctx, 2, /* dims */ baseInternalFormat, /* baseInternalFormat */ - mformat, /* gl_format */ + mformat, /* mesa_format */ transfer->stride, /* dstRowStride, bytes */ &dest, /* destSlices */ width, height, 1, /* size */ diff --git a/mesalib/src/mesa/state_tracker/st_cb_eglimage.c b/mesalib/src/mesa/state_tracker/st_cb_eglimage.c index 7484cb4f1..561967d6c 100644 --- a/mesalib/src/mesa/state_tracker/st_cb_eglimage.c +++ b/mesalib/src/mesa/state_tracker/st_cb_eglimage.c @@ -99,7 +99,7 @@ st_bind_surface(struct gl_context *ctx, GLenum target, struct st_texture_object *stObj; struct st_texture_image *stImage; GLenum internalFormat; - gl_format texFormat; + mesa_format texFormat; /* map pipe format to base format */ if (util_format_get_component_bits(ps->format, UTIL_FORMAT_COLORSPACE_RGB, 3) > 0) diff --git a/mesalib/src/mesa/state_tracker/st_cb_fbo.c b/mesalib/src/mesa/state_tracker/st_cb_fbo.c index 780148487..6449c62a8 100644 --- a/mesalib/src/mesa/state_tracker/st_cb_fbo.c +++ b/mesalib/src/mesa/state_tracker/st_cb_fbo.c @@ -541,7 +541,7 @@ st_validate_attachment(struct gl_context *ctx, { const struct st_texture_object *stObj = st_texture_object(att->Texture); enum pipe_format format; - gl_format texFormat; + mesa_format texFormat; GLboolean valid; /* Sanity check: we must be binding the surface as a (color) render target @@ -568,7 +568,7 @@ st_validate_attachment(struct gl_context *ctx, * Later when we create a surface, we change the format to a linear one. */ if (!ctx->Extensions.EXT_framebuffer_sRGB && _mesa_get_format_color_encoding(texFormat) == GL_SRGB) { - const gl_format linearFormat = _mesa_get_srgb_format_linear(texFormat); + const mesa_format linearFormat = _mesa_get_srgb_format_linear(texFormat); format = st_mesa_format_to_pipe_format(linearFormat); } diff --git a/mesalib/src/mesa/state_tracker/st_cb_texture.c b/mesalib/src/mesa/state_tracker/st_cb_texture.c index aa0862867..f0bf3745b 100644 --- a/mesalib/src/mesa/state_tracker/st_cb_texture.c +++ b/mesalib/src/mesa/state_tracker/st_cb_texture.c @@ -519,7 +519,7 @@ prep_teximage(struct gl_context *ctx, struct gl_texture_image *texImage, if (stObj->surface_based) { const GLenum target = texObj->Target; const GLuint level = texImage->Level; - gl_format texFormat; + mesa_format texFormat; _mesa_clear_texture_object(ctx, texObj); pipe_resource_reference(&stObj->pt, NULL); @@ -604,7 +604,7 @@ st_TexSubImage(struct gl_context *ctx, GLuint dims, struct pipe_transfer *transfer; struct pipe_blit_info blit; enum pipe_format src_format, dst_format; - gl_format mesa_src_format; + mesa_format mesa_src_format; GLenum gl_target = texImage->TexObject->Target; unsigned bind; GLubyte *map; @@ -856,7 +856,7 @@ st_GetTexImage(struct gl_context * ctx, struct pipe_resource *dst = NULL; struct pipe_resource dst_templ; enum pipe_format dst_format, src_format; - gl_format mesa_format; + mesa_format mesa_format; GLenum gl_target = texImage->TexObject->Target; enum pipe_texture_target pipe_target; struct pipe_blit_info blit; @@ -865,7 +865,9 @@ st_GetTexImage(struct gl_context * ctx, ubyte *map = NULL; boolean done = FALSE; - if (!st->prefer_blit_based_texture_transfer) { + if (!st->prefer_blit_based_texture_transfer && + !_mesa_is_format_compressed(texImage->TexFormat)) { + /* Try to avoid the fallback if we're doing texture decompression here */ goto fallback; } @@ -1483,6 +1485,12 @@ st_finalize_texture(struct gl_context *ctx, if (tObj->Target == GL_TEXTURE_BUFFER) { struct st_buffer_object *st_obj = st_buffer_object(tObj->BufferObject); + if (!st_obj) { + pipe_resource_reference(&stObj->pt, NULL); + pipe_sampler_view_reference(&stObj->sampler_view, NULL); + return GL_TRUE; + } + if (st_obj->buffer != stObj->pt) { pipe_resource_reference(&stObj->pt, st_obj->buffer); pipe_sampler_view_release(st->pipe, &stObj->sampler_view); @@ -1689,7 +1697,7 @@ st_AllocTextureStorage(struct gl_context *ctx, static GLboolean st_TestProxyTexImage(struct gl_context *ctx, GLenum target, - GLint level, gl_format format, + GLint level, mesa_format format, GLint width, GLint height, GLint depth, GLint border) { diff --git a/mesalib/src/mesa/state_tracker/st_extensions.c b/mesalib/src/mesa/state_tracker/st_extensions.c index e7d5d7413..9829eb596 100644 --- a/mesalib/src/mesa/state_tracker/st_extensions.c +++ b/mesalib/src/mesa/state_tracker/st_extensions.c @@ -89,10 +89,6 @@ void st_init_limits(struct st_context *st) c->MaxArrayTextureLayers = screen->get_param(screen, PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS); - c->MaxCombinedTextureImageUnits - = _min(screen->get_param(screen, PIPE_CAP_MAX_COMBINED_SAMPLERS), - MAX_COMBINED_TEXTURE_IMAGE_UNITS); - /* Define max viewport size and max renderbuffer size in terms of * max texture size (note: max tex RECT size = max tex 2D size). * If this isn't true for some hardware we'll need new PIPE_CAP_ queries. @@ -243,6 +239,12 @@ void st_init_limits(struct st_context *st) options->LowerClipDistance = true; } + c->MaxCombinedTextureImageUnits = + _min(c->Program[MESA_SHADER_VERTEX].MaxTextureImageUnits + + c->Program[MESA_SHADER_GEOMETRY].MaxTextureImageUnits + + c->Program[MESA_SHADER_FRAGMENT].MaxTextureImageUnits, + MAX_COMBINED_TEXTURE_IMAGE_UNITS); + /* This depends on program constants. */ c->MaxTextureCoordUnits = _min(c->Program[MESA_SHADER_FRAGMENT].MaxTextureImageUnits, MAX_TEXTURE_COORD_UNITS); @@ -419,7 +421,9 @@ void st_init_extensions(struct st_context *st) PIPE_FORMAT_R16G16B16A16_FLOAT } }, { { o(ARB_texture_rgb10_a2ui) }, - { PIPE_FORMAT_B10G10R10A2_UINT } }, + { PIPE_FORMAT_R10G10B10A2_UINT, + PIPE_FORMAT_B10G10R10A2_UINT }, + GL_TRUE }, /* at least one format must be supported */ { { o(EXT_framebuffer_sRGB) }, { PIPE_FORMAT_A8B8G8R8_SRGB, @@ -537,7 +541,6 @@ void st_init_extensions(struct st_context *st) ctx->Extensions.EXT_blend_color = GL_TRUE; ctx->Extensions.EXT_blend_func_separate = GL_TRUE; ctx->Extensions.EXT_blend_minmax = GL_TRUE; - ctx->Extensions.EXT_framebuffer_blit = GL_TRUE; ctx->Extensions.EXT_gpu_program_parameters = GL_TRUE; ctx->Extensions.EXT_pixel_buffer_object = GL_TRUE; ctx->Extensions.EXT_point_parameters = GL_TRUE; @@ -740,9 +743,7 @@ void st_init_extensions(struct st_context *st) ctx->Const.MinMapBufferAlignment = screen->get_param(screen, PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT); - if (ctx->Const.MinMapBufferAlignment >= 64) { - ctx->Extensions.ARB_map_buffer_alignment = GL_TRUE; - } + if (screen->get_param(screen, PIPE_CAP_TEXTURE_BUFFER_OBJECTS)) { ctx->Extensions.ARB_texture_buffer_object = GL_TRUE; diff --git a/mesalib/src/mesa/state_tracker/st_format.c b/mesalib/src/mesa/state_tracker/st_format.c index b0158f300..90e9f2f78 100644 --- a/mesalib/src/mesa/state_tracker/st_format.c +++ b/mesalib/src/mesa/state_tracker/st_format.c @@ -54,70 +54,70 @@ * Translate Mesa format to Gallium format. */ enum pipe_format -st_mesa_format_to_pipe_format(gl_format mesaFormat) +st_mesa_format_to_pipe_format(mesa_format mesaFormat) { switch (mesaFormat) { - case MESA_FORMAT_RGBA8888: + case MESA_FORMAT_A8B8G8R8_UNORM: return PIPE_FORMAT_ABGR8888_UNORM; - case MESA_FORMAT_RGBA8888_REV: + case MESA_FORMAT_R8G8B8A8_UNORM: return PIPE_FORMAT_RGBA8888_UNORM; - case MESA_FORMAT_ARGB8888: + case MESA_FORMAT_B8G8R8A8_UNORM: return PIPE_FORMAT_BGRA8888_UNORM; - case MESA_FORMAT_ARGB8888_REV: + case MESA_FORMAT_A8R8G8B8_UNORM: return PIPE_FORMAT_ARGB8888_UNORM; - case MESA_FORMAT_RGBX8888: + case MESA_FORMAT_X8B8G8R8_UNORM: return PIPE_FORMAT_XBGR8888_UNORM; - case MESA_FORMAT_RGBX8888_REV: + case MESA_FORMAT_R8G8B8X8_UNORM: return PIPE_FORMAT_RGBX8888_UNORM; - case MESA_FORMAT_XRGB8888: + case MESA_FORMAT_B8G8R8X8_UNORM: return PIPE_FORMAT_BGRX8888_UNORM; - case MESA_FORMAT_XRGB8888_REV: + case MESA_FORMAT_X8R8G8B8_UNORM: return PIPE_FORMAT_XRGB8888_UNORM; - case MESA_FORMAT_ARGB1555: + case MESA_FORMAT_B5G5R5A1_UNORM: return PIPE_FORMAT_B5G5R5A1_UNORM; - case MESA_FORMAT_ARGB4444: + case MESA_FORMAT_B4G4R4A4_UNORM: return PIPE_FORMAT_B4G4R4A4_UNORM; - case MESA_FORMAT_RGB565: + case MESA_FORMAT_B5G6R5_UNORM: return PIPE_FORMAT_B5G6R5_UNORM; - case MESA_FORMAT_RGB332: + case MESA_FORMAT_B2G3R3_UNORM: return PIPE_FORMAT_B2G3R3_UNORM; - case MESA_FORMAT_ARGB2101010: + case MESA_FORMAT_B10G10R10A2_UNORM: return PIPE_FORMAT_B10G10R10A2_UNORM; - case MESA_FORMAT_AL44: + case MESA_FORMAT_L4A4_UNORM: return PIPE_FORMAT_L4A4_UNORM; - case MESA_FORMAT_AL88: + case MESA_FORMAT_L8A8_UNORM: return PIPE_FORMAT_L8A8_UNORM; - case MESA_FORMAT_AL1616: + case MESA_FORMAT_L16A16_UNORM: return PIPE_FORMAT_L16A16_UNORM; - case MESA_FORMAT_A8: + case MESA_FORMAT_A_UNORM8: return PIPE_FORMAT_A8_UNORM; - case MESA_FORMAT_A16: + case MESA_FORMAT_A_UNORM16: return PIPE_FORMAT_A16_UNORM; - case MESA_FORMAT_L8: + case MESA_FORMAT_L_UNORM8: return PIPE_FORMAT_L8_UNORM; - case MESA_FORMAT_L16: + case MESA_FORMAT_L_UNORM16: return PIPE_FORMAT_L16_UNORM; - case MESA_FORMAT_I8: + case MESA_FORMAT_I_UNORM8: return PIPE_FORMAT_I8_UNORM; - case MESA_FORMAT_I16: + case MESA_FORMAT_I_UNORM16: return PIPE_FORMAT_I16_UNORM; - case MESA_FORMAT_Z16: + case MESA_FORMAT_Z_UNORM16: return PIPE_FORMAT_Z16_UNORM; - case MESA_FORMAT_Z32: + case MESA_FORMAT_Z_UNORM32: return PIPE_FORMAT_Z32_UNORM; - case MESA_FORMAT_Z24_S8: + case MESA_FORMAT_S8_UINT_Z24_UNORM: return PIPE_FORMAT_S8_UINT_Z24_UNORM; - case MESA_FORMAT_S8_Z24: + case MESA_FORMAT_Z24_UNORM_X8_UINT: return PIPE_FORMAT_Z24_UNORM_S8_UINT; - case MESA_FORMAT_Z24_X8: + case MESA_FORMAT_X8Z24_UNORM: return PIPE_FORMAT_X8Z24_UNORM; - case MESA_FORMAT_X8_Z24: + case MESA_FORMAT_Z24_UNORM_S8_UINT: return PIPE_FORMAT_Z24X8_UNORM; - case MESA_FORMAT_S8: + case MESA_FORMAT_S_UINT8: return PIPE_FORMAT_S8_UINT; - case MESA_FORMAT_Z32_FLOAT: + case MESA_FORMAT_Z_FLOAT32: return PIPE_FORMAT_Z32_FLOAT; - case MESA_FORMAT_Z32_FLOAT_X24S8: + case MESA_FORMAT_Z32_FLOAT_S8X24_UINT: return PIPE_FORMAT_Z32_FLOAT_S8X24_UINT; case MESA_FORMAT_YCBCR: return PIPE_FORMAT_UYVY; @@ -137,15 +137,15 @@ st_mesa_format_to_pipe_format(gl_format mesaFormat) return PIPE_FORMAT_DXT3_SRGBA; case MESA_FORMAT_SRGBA_DXT5: return PIPE_FORMAT_DXT5_SRGBA; - case MESA_FORMAT_SLA8: + case MESA_FORMAT_L8A8_SRGB: return PIPE_FORMAT_L8A8_SRGB; - case MESA_FORMAT_SL8: + case MESA_FORMAT_L_SRGB8: return PIPE_FORMAT_L8_SRGB; - case MESA_FORMAT_SRGB8: + case MESA_FORMAT_BGR_SRGB8: return PIPE_FORMAT_R8G8B8_SRGB; - case MESA_FORMAT_SRGBA8: + case MESA_FORMAT_A8B8G8R8_SRGB: return PIPE_FORMAT_A8B8G8R8_SRGB; - case MESA_FORMAT_SARGB8: + case MESA_FORMAT_B8G8R8A8_SRGB: return PIPE_FORMAT_B8G8R8A8_SRGB; case MESA_FORMAT_RGBA_FLOAT32: return PIPE_FORMAT_R32G32B32A32_FLOAT; @@ -155,21 +155,21 @@ st_mesa_format_to_pipe_format(gl_format mesaFormat) return PIPE_FORMAT_R32G32B32_FLOAT; case MESA_FORMAT_RGB_FLOAT16: return PIPE_FORMAT_R16G16B16_FLOAT; - case MESA_FORMAT_LUMINANCE_ALPHA_FLOAT32: + case MESA_FORMAT_LA_FLOAT32: return PIPE_FORMAT_L32A32_FLOAT; - case MESA_FORMAT_LUMINANCE_ALPHA_FLOAT16: + case MESA_FORMAT_LA_FLOAT16: return PIPE_FORMAT_L16A16_FLOAT; - case MESA_FORMAT_LUMINANCE_FLOAT32: + case MESA_FORMAT_L_FLOAT32: return PIPE_FORMAT_L32_FLOAT; - case MESA_FORMAT_LUMINANCE_FLOAT16: + case MESA_FORMAT_L_FLOAT16: return PIPE_FORMAT_L16_FLOAT; - case MESA_FORMAT_ALPHA_FLOAT32: + case MESA_FORMAT_A_FLOAT32: return PIPE_FORMAT_A32_FLOAT; - case MESA_FORMAT_ALPHA_FLOAT16: + case MESA_FORMAT_A_FLOAT16: return PIPE_FORMAT_A16_FLOAT; - case MESA_FORMAT_INTENSITY_FLOAT32: + case MESA_FORMAT_I_FLOAT32: return PIPE_FORMAT_I32_FLOAT; - case MESA_FORMAT_INTENSITY_FLOAT16: + case MESA_FORMAT_I_FLOAT16: return PIPE_FORMAT_I16_FLOAT; case MESA_FORMAT_R_FLOAT32: return PIPE_FORMAT_R32_FLOAT; @@ -180,97 +180,97 @@ st_mesa_format_to_pipe_format(gl_format mesaFormat) case MESA_FORMAT_RG_FLOAT16: return PIPE_FORMAT_R16G16_FLOAT; - case MESA_FORMAT_R8: + case MESA_FORMAT_R_UNORM8: return PIPE_FORMAT_R8_UNORM; - case MESA_FORMAT_R16: + case MESA_FORMAT_R_UNORM16: return PIPE_FORMAT_R16_UNORM; - case MESA_FORMAT_GR88: + case MESA_FORMAT_R8G8_UNORM: return PIPE_FORMAT_R8G8_UNORM; - case MESA_FORMAT_GR1616: + case MESA_FORMAT_R16G16_UNORM: return PIPE_FORMAT_R16G16_UNORM; - case MESA_FORMAT_RGBA_16: + case MESA_FORMAT_RGBA_UNORM16: return PIPE_FORMAT_R16G16B16A16_UNORM; /* signed int formats */ - case MESA_FORMAT_ALPHA_UINT8: + case MESA_FORMAT_A_UINT8: return PIPE_FORMAT_A8_UINT; - case MESA_FORMAT_ALPHA_UINT16: + case MESA_FORMAT_A_UINT16: return PIPE_FORMAT_A16_UINT; - case MESA_FORMAT_ALPHA_UINT32: + case MESA_FORMAT_A_UINT32: return PIPE_FORMAT_A32_UINT; - case MESA_FORMAT_ALPHA_INT8: + case MESA_FORMAT_A_SINT8: return PIPE_FORMAT_A8_SINT; - case MESA_FORMAT_ALPHA_INT16: + case MESA_FORMAT_A_SINT16: return PIPE_FORMAT_A16_SINT; - case MESA_FORMAT_ALPHA_INT32: + case MESA_FORMAT_A_SINT32: return PIPE_FORMAT_A32_SINT; - case MESA_FORMAT_INTENSITY_UINT8: + case MESA_FORMAT_I_UINT8: return PIPE_FORMAT_I8_UINT; - case MESA_FORMAT_INTENSITY_UINT16: + case MESA_FORMAT_I_UINT16: return PIPE_FORMAT_I16_UINT; - case MESA_FORMAT_INTENSITY_UINT32: + case MESA_FORMAT_I_UINT32: return PIPE_FORMAT_I32_UINT; - case MESA_FORMAT_INTENSITY_INT8: + case MESA_FORMAT_I_SINT8: return PIPE_FORMAT_I8_SINT; - case MESA_FORMAT_INTENSITY_INT16: + case MESA_FORMAT_I_SINT16: return PIPE_FORMAT_I16_SINT; - case MESA_FORMAT_INTENSITY_INT32: + case MESA_FORMAT_I_SINT32: return PIPE_FORMAT_I32_SINT; - case MESA_FORMAT_LUMINANCE_UINT8: + case MESA_FORMAT_L_UINT8: return PIPE_FORMAT_L8_UINT; - case MESA_FORMAT_LUMINANCE_UINT16: + case MESA_FORMAT_L_UINT16: return PIPE_FORMAT_L16_UINT; - case MESA_FORMAT_LUMINANCE_UINT32: + case MESA_FORMAT_L_UINT32: return PIPE_FORMAT_L32_UINT; - case MESA_FORMAT_LUMINANCE_INT8: + case MESA_FORMAT_L_SINT8: return PIPE_FORMAT_L8_SINT; - case MESA_FORMAT_LUMINANCE_INT16: + case MESA_FORMAT_L_SINT16: return PIPE_FORMAT_L16_SINT; - case MESA_FORMAT_LUMINANCE_INT32: + case MESA_FORMAT_L_SINT32: return PIPE_FORMAT_L32_SINT; - case MESA_FORMAT_LUMINANCE_ALPHA_UINT8: + case MESA_FORMAT_LA_UINT8: return PIPE_FORMAT_L8A8_UINT; - case MESA_FORMAT_LUMINANCE_ALPHA_UINT16: + case MESA_FORMAT_LA_UINT16: return PIPE_FORMAT_L16A16_UINT; - case MESA_FORMAT_LUMINANCE_ALPHA_UINT32: + case MESA_FORMAT_LA_UINT32: return PIPE_FORMAT_L32A32_UINT; - case MESA_FORMAT_LUMINANCE_ALPHA_INT8: + case MESA_FORMAT_LA_SINT8: return PIPE_FORMAT_L8A8_SINT; - case MESA_FORMAT_LUMINANCE_ALPHA_INT16: + case MESA_FORMAT_LA_SINT16: return PIPE_FORMAT_L16A16_SINT; - case MESA_FORMAT_LUMINANCE_ALPHA_INT32: + case MESA_FORMAT_LA_SINT32: return PIPE_FORMAT_L32A32_SINT; - case MESA_FORMAT_R_INT8: + case MESA_FORMAT_R_SINT8: return PIPE_FORMAT_R8_SINT; - case MESA_FORMAT_RG_INT8: + case MESA_FORMAT_RG_SINT8: return PIPE_FORMAT_R8G8_SINT; - case MESA_FORMAT_RGB_INT8: + case MESA_FORMAT_RGB_SINT8: return PIPE_FORMAT_R8G8B8_SINT; - case MESA_FORMAT_RGBA_INT8: + case MESA_FORMAT_RGBA_SINT8: return PIPE_FORMAT_R8G8B8A8_SINT; - case MESA_FORMAT_R_INT16: + case MESA_FORMAT_R_SINT16: return PIPE_FORMAT_R16_SINT; - case MESA_FORMAT_RG_INT16: + case MESA_FORMAT_RG_SINT16: return PIPE_FORMAT_R16G16_SINT; - case MESA_FORMAT_RGB_INT16: + case MESA_FORMAT_RGB_SINT16: return PIPE_FORMAT_R16G16B16_SINT; - case MESA_FORMAT_RGBA_INT16: + case MESA_FORMAT_RGBA_SINT16: return PIPE_FORMAT_R16G16B16A16_SINT; - case MESA_FORMAT_R_INT32: + case MESA_FORMAT_R_SINT32: return PIPE_FORMAT_R32_SINT; - case MESA_FORMAT_RG_INT32: + case MESA_FORMAT_RG_SINT32: return PIPE_FORMAT_R32G32_SINT; - case MESA_FORMAT_RGB_INT32: + case MESA_FORMAT_RGB_SINT32: return PIPE_FORMAT_R32G32B32_SINT; - case MESA_FORMAT_RGBA_INT32: + case MESA_FORMAT_RGBA_SINT32: return PIPE_FORMAT_R32G32B32A32_SINT; /* unsigned int formats */ @@ -299,96 +299,98 @@ st_mesa_format_to_pipe_format(gl_format mesaFormat) case MESA_FORMAT_RGBA_UINT32: return PIPE_FORMAT_R32G32B32A32_UINT; - case MESA_FORMAT_RED_RGTC1: + case MESA_FORMAT_R_RGTC1_UNORM: return PIPE_FORMAT_RGTC1_UNORM; - case MESA_FORMAT_SIGNED_RED_RGTC1: + case MESA_FORMAT_R_RGTC1_SNORM: return PIPE_FORMAT_RGTC1_SNORM; - case MESA_FORMAT_RG_RGTC2: + case MESA_FORMAT_RG_RGTC2_UNORM: return PIPE_FORMAT_RGTC2_UNORM; - case MESA_FORMAT_SIGNED_RG_RGTC2: + case MESA_FORMAT_RG_RGTC2_SNORM: return PIPE_FORMAT_RGTC2_SNORM; - case MESA_FORMAT_L_LATC1: + case MESA_FORMAT_L_LATC1_UNORM: return PIPE_FORMAT_LATC1_UNORM; - case MESA_FORMAT_SIGNED_L_LATC1: + case MESA_FORMAT_L_LATC1_SNORM: return PIPE_FORMAT_LATC1_SNORM; - case MESA_FORMAT_LA_LATC2: + case MESA_FORMAT_LA_LATC2_UNORM: return PIPE_FORMAT_LATC2_UNORM; - case MESA_FORMAT_SIGNED_LA_LATC2: + case MESA_FORMAT_LA_LATC2_SNORM: return PIPE_FORMAT_LATC2_SNORM; case MESA_FORMAT_ETC1_RGB8: return PIPE_FORMAT_ETC1_RGB8; /* signed normalized formats */ - case MESA_FORMAT_SIGNED_R8: + case MESA_FORMAT_R_SNORM8: return PIPE_FORMAT_R8_SNORM; - case MESA_FORMAT_SIGNED_RG88_REV: + case MESA_FORMAT_R8G8_SNORM: return PIPE_FORMAT_R8G8_SNORM; - case MESA_FORMAT_SIGNED_RGBA8888_REV: + case MESA_FORMAT_R8G8B8A8_SNORM: return PIPE_FORMAT_R8G8B8A8_SNORM; - case MESA_FORMAT_SIGNED_A8: + case MESA_FORMAT_A_SNORM8: return PIPE_FORMAT_A8_SNORM; - case MESA_FORMAT_SIGNED_L8: + case MESA_FORMAT_L_SNORM8: return PIPE_FORMAT_L8_SNORM; - case MESA_FORMAT_SIGNED_AL88: + case MESA_FORMAT_L8A8_SNORM: return PIPE_FORMAT_L8A8_SNORM; - case MESA_FORMAT_SIGNED_I8: + case MESA_FORMAT_I_SNORM8: return PIPE_FORMAT_I8_SNORM; - case MESA_FORMAT_SIGNED_R16: + case MESA_FORMAT_R_SNORM16: return PIPE_FORMAT_R16_SNORM; - case MESA_FORMAT_SIGNED_GR1616: + case MESA_FORMAT_R16G16_SNORM: return PIPE_FORMAT_R16G16_SNORM; - case MESA_FORMAT_SIGNED_RGBA_16: + case MESA_FORMAT_RGBA_SNORM16: return PIPE_FORMAT_R16G16B16A16_SNORM; - case MESA_FORMAT_SIGNED_A16: + case MESA_FORMAT_A_SNORM16: return PIPE_FORMAT_A16_SNORM; - case MESA_FORMAT_SIGNED_L16: + case MESA_FORMAT_L_SNORM16: return PIPE_FORMAT_L16_SNORM; - case MESA_FORMAT_SIGNED_AL1616: + case MESA_FORMAT_LA_SNORM16: return PIPE_FORMAT_L16A16_SNORM; - case MESA_FORMAT_SIGNED_I16: + case MESA_FORMAT_I_SNORM16: return PIPE_FORMAT_I16_SNORM; - case MESA_FORMAT_RGB9_E5_FLOAT: + case MESA_FORMAT_R9G9B9E5_FLOAT: return PIPE_FORMAT_R9G9B9E5_FLOAT; - case MESA_FORMAT_R11_G11_B10_FLOAT: + case MESA_FORMAT_R11G11B10_FLOAT: return PIPE_FORMAT_R11G11B10_FLOAT; - case MESA_FORMAT_ARGB2101010_UINT: + case MESA_FORMAT_B10G10R10A2_UINT: return PIPE_FORMAT_B10G10R10A2_UINT; + case MESA_FORMAT_R10G10B10A2_UINT: + return PIPE_FORMAT_R10G10B10A2_UINT; - case MESA_FORMAT_XRGB4444_UNORM: + case MESA_FORMAT_B4G4R4X4_UNORM: return PIPE_FORMAT_B4G4R4X4_UNORM; - case MESA_FORMAT_XRGB1555_UNORM: + case MESA_FORMAT_B5G5R5X1_UNORM: return PIPE_FORMAT_B5G5R5X1_UNORM; - case MESA_FORMAT_XBGR8888_SNORM: + case MESA_FORMAT_R8G8B8X8_SNORM: return PIPE_FORMAT_R8G8B8X8_SNORM; - case MESA_FORMAT_XBGR8888_SRGB: + case MESA_FORMAT_R8G8B8X8_SRGB: return PIPE_FORMAT_R8G8B8X8_SRGB; - case MESA_FORMAT_XBGR8888_UINT: + case MESA_FORMAT_RGBX_UINT8: return PIPE_FORMAT_R8G8B8X8_UINT; - case MESA_FORMAT_XBGR8888_SINT: + case MESA_FORMAT_RGBX_SINT8: return PIPE_FORMAT_R8G8B8X8_SINT; - case MESA_FORMAT_XRGB2101010_UNORM: + case MESA_FORMAT_B10G10R10X2_UNORM: return PIPE_FORMAT_B10G10R10X2_UNORM; - case MESA_FORMAT_XBGR16161616_UNORM: + case MESA_FORMAT_RGBX_UNORM16: return PIPE_FORMAT_R16G16B16X16_UNORM; - case MESA_FORMAT_XBGR16161616_SNORM: + case MESA_FORMAT_RGBX_SNORM16: return PIPE_FORMAT_R16G16B16X16_SNORM; - case MESA_FORMAT_XBGR16161616_FLOAT: + case MESA_FORMAT_RGBX_FLOAT16: return PIPE_FORMAT_R16G16B16X16_FLOAT; - case MESA_FORMAT_XBGR16161616_UINT: + case MESA_FORMAT_RGBX_UINT16: return PIPE_FORMAT_R16G16B16X16_UINT; - case MESA_FORMAT_XBGR16161616_SINT: + case MESA_FORMAT_RGBX_SINT16: return PIPE_FORMAT_R16G16B16X16_SINT; - case MESA_FORMAT_XBGR32323232_FLOAT: + case MESA_FORMAT_RGBX_FLOAT32: return PIPE_FORMAT_R32G32B32X32_FLOAT; - case MESA_FORMAT_XBGR32323232_UINT: + case MESA_FORMAT_RGBX_UINT32: return PIPE_FORMAT_R32G32B32X32_UINT; - case MESA_FORMAT_XBGR32323232_SINT: + case MESA_FORMAT_RGBX_SINT32: return PIPE_FORMAT_R32G32B32X32_SINT; default: @@ -400,76 +402,76 @@ st_mesa_format_to_pipe_format(gl_format mesaFormat) /** * Translate Gallium format to Mesa format. */ -gl_format +mesa_format st_pipe_format_to_mesa_format(enum pipe_format format) { switch (format) { case PIPE_FORMAT_ABGR8888_UNORM: - return MESA_FORMAT_RGBA8888; + return MESA_FORMAT_A8B8G8R8_UNORM; case PIPE_FORMAT_RGBA8888_UNORM: - return MESA_FORMAT_RGBA8888_REV; + return MESA_FORMAT_R8G8B8A8_UNORM; case PIPE_FORMAT_BGRA8888_UNORM: - return MESA_FORMAT_ARGB8888; + return MESA_FORMAT_B8G8R8A8_UNORM; case PIPE_FORMAT_ARGB8888_UNORM: - return MESA_FORMAT_ARGB8888_REV; + return MESA_FORMAT_A8R8G8B8_UNORM; case PIPE_FORMAT_XBGR8888_UNORM: - return MESA_FORMAT_RGBX8888; + return MESA_FORMAT_X8B8G8R8_UNORM; case PIPE_FORMAT_RGBX8888_UNORM: - return MESA_FORMAT_RGBX8888_REV; + return MESA_FORMAT_R8G8B8X8_UNORM; case PIPE_FORMAT_BGRX8888_UNORM: - return MESA_FORMAT_XRGB8888; + return MESA_FORMAT_B8G8R8X8_UNORM; case PIPE_FORMAT_XRGB8888_UNORM: - return MESA_FORMAT_XRGB8888_REV; + return MESA_FORMAT_X8R8G8B8_UNORM; case PIPE_FORMAT_B5G5R5A1_UNORM: - return MESA_FORMAT_ARGB1555; + return MESA_FORMAT_B5G5R5A1_UNORM; case PIPE_FORMAT_B4G4R4A4_UNORM: - return MESA_FORMAT_ARGB4444; + return MESA_FORMAT_B4G4R4A4_UNORM; case PIPE_FORMAT_B5G6R5_UNORM: - return MESA_FORMAT_RGB565; + return MESA_FORMAT_B5G6R5_UNORM; case PIPE_FORMAT_B2G3R3_UNORM: - return MESA_FORMAT_RGB332; + return MESA_FORMAT_B2G3R3_UNORM; case PIPE_FORMAT_B10G10R10A2_UNORM: - return MESA_FORMAT_ARGB2101010; + return MESA_FORMAT_B10G10R10A2_UNORM; case PIPE_FORMAT_L4A4_UNORM: - return MESA_FORMAT_AL44; + return MESA_FORMAT_L4A4_UNORM; case PIPE_FORMAT_L8A8_UNORM: - return MESA_FORMAT_AL88; + return MESA_FORMAT_L8A8_UNORM; case PIPE_FORMAT_L16A16_UNORM: - return MESA_FORMAT_AL1616; + return MESA_FORMAT_L16A16_UNORM; case PIPE_FORMAT_A8_UNORM: - return MESA_FORMAT_A8; + return MESA_FORMAT_A_UNORM8; case PIPE_FORMAT_A16_UNORM: - return MESA_FORMAT_A16; + return MESA_FORMAT_A_UNORM16; case PIPE_FORMAT_L8_UNORM: - return MESA_FORMAT_L8; + return MESA_FORMAT_L_UNORM8; case PIPE_FORMAT_L16_UNORM: - return MESA_FORMAT_L16; + return MESA_FORMAT_L_UNORM16; case PIPE_FORMAT_I8_UNORM: - return MESA_FORMAT_I8; + return MESA_FORMAT_I_UNORM8; case PIPE_FORMAT_I16_UNORM: - return MESA_FORMAT_I16; + return MESA_FORMAT_I_UNORM16; case PIPE_FORMAT_S8_UINT: - return MESA_FORMAT_S8; + return MESA_FORMAT_S_UINT8; case PIPE_FORMAT_R16G16B16A16_UNORM: - return MESA_FORMAT_RGBA_16; + return MESA_FORMAT_RGBA_UNORM16; case PIPE_FORMAT_Z16_UNORM: - return MESA_FORMAT_Z16; + return MESA_FORMAT_Z_UNORM16; case PIPE_FORMAT_Z32_UNORM: - return MESA_FORMAT_Z32; + return MESA_FORMAT_Z_UNORM32; case PIPE_FORMAT_S8_UINT_Z24_UNORM: - return MESA_FORMAT_Z24_S8; + return MESA_FORMAT_S8_UINT_Z24_UNORM; case PIPE_FORMAT_X8Z24_UNORM: - return MESA_FORMAT_Z24_X8; + return MESA_FORMAT_X8Z24_UNORM; case PIPE_FORMAT_Z24X8_UNORM: - return MESA_FORMAT_X8_Z24; + return MESA_FORMAT_Z24_UNORM_S8_UINT; case PIPE_FORMAT_Z24_UNORM_S8_UINT: - return MESA_FORMAT_S8_Z24; + return MESA_FORMAT_Z24_UNORM_X8_UINT; case PIPE_FORMAT_Z32_FLOAT: - return MESA_FORMAT_Z32_FLOAT; + return MESA_FORMAT_Z_FLOAT32; case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT: - return MESA_FORMAT_Z32_FLOAT_X24S8; + return MESA_FORMAT_Z32_FLOAT_S8X24_UINT; case PIPE_FORMAT_UYVY: return MESA_FORMAT_YCBCR; @@ -493,15 +495,15 @@ st_pipe_format_to_mesa_format(enum pipe_format format) case PIPE_FORMAT_DXT5_SRGBA: return MESA_FORMAT_SRGBA_DXT5; case PIPE_FORMAT_L8A8_SRGB: - return MESA_FORMAT_SLA8; + return MESA_FORMAT_L8A8_SRGB; case PIPE_FORMAT_L8_SRGB: - return MESA_FORMAT_SL8; + return MESA_FORMAT_L_SRGB8; case PIPE_FORMAT_R8G8B8_SRGB: - return MESA_FORMAT_SRGB8; + return MESA_FORMAT_BGR_SRGB8; case PIPE_FORMAT_A8B8G8R8_SRGB: - return MESA_FORMAT_SRGBA8; + return MESA_FORMAT_A8B8G8R8_SRGB; case PIPE_FORMAT_B8G8R8A8_SRGB: - return MESA_FORMAT_SARGB8; + return MESA_FORMAT_B8G8R8A8_SRGB; case PIPE_FORMAT_R32G32B32A32_FLOAT: return MESA_FORMAT_RGBA_FLOAT32; case PIPE_FORMAT_R16G16B16A16_FLOAT: @@ -511,21 +513,21 @@ st_pipe_format_to_mesa_format(enum pipe_format format) case PIPE_FORMAT_R16G16B16_FLOAT: return MESA_FORMAT_RGB_FLOAT16; case PIPE_FORMAT_L32A32_FLOAT: - return MESA_FORMAT_LUMINANCE_ALPHA_FLOAT32; + return MESA_FORMAT_LA_FLOAT32; case PIPE_FORMAT_L16A16_FLOAT: - return MESA_FORMAT_LUMINANCE_ALPHA_FLOAT16; + return MESA_FORMAT_LA_FLOAT16; case PIPE_FORMAT_L32_FLOAT: - return MESA_FORMAT_LUMINANCE_FLOAT32; + return MESA_FORMAT_L_FLOAT32; case PIPE_FORMAT_L16_FLOAT: - return MESA_FORMAT_LUMINANCE_FLOAT16; + return MESA_FORMAT_L_FLOAT16; case PIPE_FORMAT_A32_FLOAT: - return MESA_FORMAT_ALPHA_FLOAT32; + return MESA_FORMAT_A_FLOAT32; case PIPE_FORMAT_A16_FLOAT: - return MESA_FORMAT_ALPHA_FLOAT16; + return MESA_FORMAT_A_FLOAT16; case PIPE_FORMAT_I32_FLOAT: - return MESA_FORMAT_INTENSITY_FLOAT32; + return MESA_FORMAT_I_FLOAT32; case PIPE_FORMAT_I16_FLOAT: - return MESA_FORMAT_INTENSITY_FLOAT16; + return MESA_FORMAT_I_FLOAT16; case PIPE_FORMAT_R32_FLOAT: return MESA_FORMAT_R_FLOAT32; case PIPE_FORMAT_R16_FLOAT: @@ -536,92 +538,92 @@ st_pipe_format_to_mesa_format(enum pipe_format format) return MESA_FORMAT_RG_FLOAT16; case PIPE_FORMAT_R8_UNORM: - return MESA_FORMAT_R8; + return MESA_FORMAT_R_UNORM8; case PIPE_FORMAT_R16_UNORM: - return MESA_FORMAT_R16; + return MESA_FORMAT_R_UNORM16; case PIPE_FORMAT_R8G8_UNORM: - return MESA_FORMAT_GR88; + return MESA_FORMAT_R8G8_UNORM; case PIPE_FORMAT_R16G16_UNORM: - return MESA_FORMAT_GR1616; + return MESA_FORMAT_R16G16_UNORM; case PIPE_FORMAT_A8_UINT: - return MESA_FORMAT_ALPHA_UINT8; + return MESA_FORMAT_A_UINT8; case PIPE_FORMAT_A16_UINT: - return MESA_FORMAT_ALPHA_UINT16; + return MESA_FORMAT_A_UINT16; case PIPE_FORMAT_A32_UINT: - return MESA_FORMAT_ALPHA_UINT32; + return MESA_FORMAT_A_UINT32; case PIPE_FORMAT_A8_SINT: - return MESA_FORMAT_ALPHA_INT8; + return MESA_FORMAT_A_SINT8; case PIPE_FORMAT_A16_SINT: - return MESA_FORMAT_ALPHA_INT16; + return MESA_FORMAT_A_SINT16; case PIPE_FORMAT_A32_SINT: - return MESA_FORMAT_ALPHA_INT32; + return MESA_FORMAT_A_SINT32; case PIPE_FORMAT_I8_UINT: - return MESA_FORMAT_INTENSITY_UINT8; + return MESA_FORMAT_I_UINT8; case PIPE_FORMAT_I16_UINT: - return MESA_FORMAT_INTENSITY_UINT16; + return MESA_FORMAT_I_UINT16; case PIPE_FORMAT_I32_UINT: - return MESA_FORMAT_INTENSITY_UINT32; + return MESA_FORMAT_I_UINT32; case PIPE_FORMAT_I8_SINT: - return MESA_FORMAT_INTENSITY_INT8; + return MESA_FORMAT_I_SINT8; case PIPE_FORMAT_I16_SINT: - return MESA_FORMAT_INTENSITY_INT16; + return MESA_FORMAT_I_SINT16; case PIPE_FORMAT_I32_SINT: - return MESA_FORMAT_INTENSITY_INT32; + return MESA_FORMAT_I_SINT32; case PIPE_FORMAT_L8_UINT: - return MESA_FORMAT_LUMINANCE_UINT8; + return MESA_FORMAT_L_UINT8; case PIPE_FORMAT_L16_UINT: - return MESA_FORMAT_LUMINANCE_UINT16; + return MESA_FORMAT_L_UINT16; case PIPE_FORMAT_L32_UINT: - return MESA_FORMAT_LUMINANCE_UINT32; + return MESA_FORMAT_L_UINT32; case PIPE_FORMAT_L8_SINT: - return MESA_FORMAT_LUMINANCE_INT8; + return MESA_FORMAT_L_SINT8; case PIPE_FORMAT_L16_SINT: - return MESA_FORMAT_LUMINANCE_INT16; + return MESA_FORMAT_L_SINT16; case PIPE_FORMAT_L32_SINT: - return MESA_FORMAT_LUMINANCE_INT32; + return MESA_FORMAT_L_SINT32; case PIPE_FORMAT_L8A8_UINT: - return MESA_FORMAT_LUMINANCE_ALPHA_UINT8; + return MESA_FORMAT_LA_UINT8; case PIPE_FORMAT_L16A16_UINT: - return MESA_FORMAT_LUMINANCE_ALPHA_UINT16; + return MESA_FORMAT_LA_UINT16; case PIPE_FORMAT_L32A32_UINT: - return MESA_FORMAT_LUMINANCE_ALPHA_UINT32; + return MESA_FORMAT_LA_UINT32; case PIPE_FORMAT_L8A8_SINT: - return MESA_FORMAT_LUMINANCE_ALPHA_INT8; + return MESA_FORMAT_LA_SINT8; case PIPE_FORMAT_L16A16_SINT: - return MESA_FORMAT_LUMINANCE_ALPHA_INT16; + return MESA_FORMAT_LA_SINT16; case PIPE_FORMAT_L32A32_SINT: - return MESA_FORMAT_LUMINANCE_ALPHA_INT32; + return MESA_FORMAT_LA_SINT32; case PIPE_FORMAT_R8_SINT: - return MESA_FORMAT_R_INT8; + return MESA_FORMAT_R_SINT8; case PIPE_FORMAT_R8G8_SINT: - return MESA_FORMAT_RG_INT8; + return MESA_FORMAT_RG_SINT8; case PIPE_FORMAT_R8G8B8_SINT: - return MESA_FORMAT_RGB_INT8; + return MESA_FORMAT_RGB_SINT8; case PIPE_FORMAT_R8G8B8A8_SINT: - return MESA_FORMAT_RGBA_INT8; + return MESA_FORMAT_RGBA_SINT8; case PIPE_FORMAT_R16_SINT: - return MESA_FORMAT_R_INT16; + return MESA_FORMAT_R_SINT16; case PIPE_FORMAT_R16G16_SINT: - return MESA_FORMAT_RG_INT16; + return MESA_FORMAT_RG_SINT16; case PIPE_FORMAT_R16G16B16_SINT: - return MESA_FORMAT_RGB_INT16; + return MESA_FORMAT_RGB_SINT16; case PIPE_FORMAT_R16G16B16A16_SINT: - return MESA_FORMAT_RGBA_INT16; + return MESA_FORMAT_RGBA_SINT16; case PIPE_FORMAT_R32_SINT: - return MESA_FORMAT_R_INT32; + return MESA_FORMAT_R_SINT32; case PIPE_FORMAT_R32G32_SINT: - return MESA_FORMAT_RG_INT32; + return MESA_FORMAT_RG_SINT32; case PIPE_FORMAT_R32G32B32_SINT: - return MESA_FORMAT_RGB_INT32; + return MESA_FORMAT_RGB_SINT32; case PIPE_FORMAT_R32G32B32A32_SINT: - return MESA_FORMAT_RGBA_INT32; + return MESA_FORMAT_RGBA_SINT32; /* unsigned int formats */ case PIPE_FORMAT_R8_UINT: @@ -652,97 +654,99 @@ st_pipe_format_to_mesa_format(enum pipe_format format) return MESA_FORMAT_RGBA_UINT32; case PIPE_FORMAT_RGTC1_UNORM: - return MESA_FORMAT_RED_RGTC1; + return MESA_FORMAT_R_RGTC1_UNORM; case PIPE_FORMAT_RGTC1_SNORM: - return MESA_FORMAT_SIGNED_RED_RGTC1; + return MESA_FORMAT_R_RGTC1_SNORM; case PIPE_FORMAT_RGTC2_UNORM: - return MESA_FORMAT_RG_RGTC2; + return MESA_FORMAT_RG_RGTC2_UNORM; case PIPE_FORMAT_RGTC2_SNORM: - return MESA_FORMAT_SIGNED_RG_RGTC2; + return MESA_FORMAT_RG_RGTC2_SNORM; case PIPE_FORMAT_LATC1_UNORM: - return MESA_FORMAT_L_LATC1; + return MESA_FORMAT_L_LATC1_UNORM; case PIPE_FORMAT_LATC1_SNORM: - return MESA_FORMAT_SIGNED_L_LATC1; + return MESA_FORMAT_L_LATC1_SNORM; case PIPE_FORMAT_LATC2_UNORM: - return MESA_FORMAT_LA_LATC2; + return MESA_FORMAT_LA_LATC2_UNORM; case PIPE_FORMAT_LATC2_SNORM: - return MESA_FORMAT_SIGNED_LA_LATC2; + return MESA_FORMAT_LA_LATC2_SNORM; case PIPE_FORMAT_ETC1_RGB8: return MESA_FORMAT_ETC1_RGB8; /* signed normalized formats */ case PIPE_FORMAT_R8_SNORM: - return MESA_FORMAT_SIGNED_R8; + return MESA_FORMAT_R_SNORM8; case PIPE_FORMAT_R8G8_SNORM: - return MESA_FORMAT_SIGNED_RG88_REV; + return MESA_FORMAT_R8G8_SNORM; case PIPE_FORMAT_R8G8B8A8_SNORM: - return MESA_FORMAT_SIGNED_RGBA8888_REV; + return MESA_FORMAT_R8G8B8A8_SNORM; case PIPE_FORMAT_A8_SNORM: - return MESA_FORMAT_SIGNED_A8; + return MESA_FORMAT_A_SNORM8; case PIPE_FORMAT_L8_SNORM: - return MESA_FORMAT_SIGNED_L8; + return MESA_FORMAT_L_SNORM8; case PIPE_FORMAT_L8A8_SNORM: - return MESA_FORMAT_SIGNED_AL88; + return MESA_FORMAT_L8A8_SNORM; case PIPE_FORMAT_I8_SNORM: - return MESA_FORMAT_SIGNED_I8; + return MESA_FORMAT_I_SNORM8; case PIPE_FORMAT_R16_SNORM: - return MESA_FORMAT_SIGNED_R16; + return MESA_FORMAT_R_SNORM16; case PIPE_FORMAT_R16G16_SNORM: - return MESA_FORMAT_SIGNED_GR1616; + return MESA_FORMAT_R16G16_SNORM; case PIPE_FORMAT_R16G16B16A16_SNORM: - return MESA_FORMAT_SIGNED_RGBA_16; + return MESA_FORMAT_RGBA_SNORM16; case PIPE_FORMAT_A16_SNORM: - return MESA_FORMAT_SIGNED_A16; + return MESA_FORMAT_A_SNORM16; case PIPE_FORMAT_L16_SNORM: - return MESA_FORMAT_SIGNED_L16; + return MESA_FORMAT_L_SNORM16; case PIPE_FORMAT_L16A16_SNORM: - return MESA_FORMAT_SIGNED_AL1616; + return MESA_FORMAT_LA_SNORM16; case PIPE_FORMAT_I16_SNORM: - return MESA_FORMAT_SIGNED_I16; + return MESA_FORMAT_I_SNORM16; case PIPE_FORMAT_R9G9B9E5_FLOAT: - return MESA_FORMAT_RGB9_E5_FLOAT; + return MESA_FORMAT_R9G9B9E5_FLOAT; case PIPE_FORMAT_R11G11B10_FLOAT: - return MESA_FORMAT_R11_G11_B10_FLOAT; + return MESA_FORMAT_R11G11B10_FLOAT; case PIPE_FORMAT_B10G10R10A2_UINT: - return MESA_FORMAT_ARGB2101010_UINT; + return MESA_FORMAT_B10G10R10A2_UINT; + case PIPE_FORMAT_R10G10B10A2_UINT: + return MESA_FORMAT_R10G10B10A2_UINT; case PIPE_FORMAT_B4G4R4X4_UNORM: - return MESA_FORMAT_XRGB4444_UNORM; + return MESA_FORMAT_B4G4R4X4_UNORM; case PIPE_FORMAT_B5G5R5X1_UNORM: - return MESA_FORMAT_XRGB1555_UNORM; + return MESA_FORMAT_B5G5R5X1_UNORM; case PIPE_FORMAT_R8G8B8X8_SNORM: - return MESA_FORMAT_XBGR8888_SNORM; + return MESA_FORMAT_R8G8B8X8_SNORM; case PIPE_FORMAT_R8G8B8X8_SRGB: - return MESA_FORMAT_XBGR8888_SRGB; + return MESA_FORMAT_R8G8B8X8_SRGB; case PIPE_FORMAT_R8G8B8X8_UINT: - return MESA_FORMAT_XBGR8888_UINT; + return MESA_FORMAT_RGBX_UINT8; case PIPE_FORMAT_R8G8B8X8_SINT: - return MESA_FORMAT_XBGR8888_SINT; + return MESA_FORMAT_RGBX_SINT8; case PIPE_FORMAT_B10G10R10X2_UNORM: - return MESA_FORMAT_XRGB2101010_UNORM; + return MESA_FORMAT_B10G10R10X2_UNORM; case PIPE_FORMAT_R16G16B16X16_UNORM: - return MESA_FORMAT_XBGR16161616_UNORM; + return MESA_FORMAT_RGBX_UNORM16; case PIPE_FORMAT_R16G16B16X16_SNORM: - return MESA_FORMAT_XBGR16161616_SNORM; + return MESA_FORMAT_RGBX_SNORM16; case PIPE_FORMAT_R16G16B16X16_FLOAT: - return MESA_FORMAT_XBGR16161616_FLOAT; + return MESA_FORMAT_RGBX_FLOAT16; case PIPE_FORMAT_R16G16B16X16_UINT: - return MESA_FORMAT_XBGR16161616_UINT; + return MESA_FORMAT_RGBX_UINT16; case PIPE_FORMAT_R16G16B16X16_SINT: - return MESA_FORMAT_XBGR16161616_SINT; + return MESA_FORMAT_RGBX_SINT16; case PIPE_FORMAT_R32G32B32X32_FLOAT: - return MESA_FORMAT_XBGR32323232_FLOAT; + return MESA_FORMAT_RGBX_FLOAT32; case PIPE_FORMAT_R32G32B32X32_UINT: - return MESA_FORMAT_XBGR32323232_UINT; + return MESA_FORMAT_RGBX_UINT32; case PIPE_FORMAT_R32G32B32X32_SINT: - return MESA_FORMAT_XBGR32323232_SINT; + return MESA_FORMAT_RGBX_SINT32; default: assert(0); @@ -1483,7 +1487,7 @@ static const struct format_mapping format_map[] = { }, { { GL_RGB10_A2UI, 0 }, - { PIPE_FORMAT_B10G10R10A2_UINT, 0 } + { PIPE_FORMAT_R10G10B10A2_UINT, PIPE_FORMAT_B10G10R10A2_UINT, 0 } }, }; @@ -1687,7 +1691,7 @@ enum pipe_format st_choose_matching_format(struct pipe_screen *screen, unsigned bind, GLenum format, GLenum type, GLboolean swapBytes) { - gl_format mesa_format; + mesa_format mesa_format; for (mesa_format = 1; mesa_format < MESA_FORMAT_COUNT; mesa_format++) { if (_mesa_get_format_color_encoding(mesa_format) == GL_SRGB) { @@ -1714,7 +1718,7 @@ st_choose_matching_format(struct pipe_screen *screen, unsigned bind, /** * Called via ctx->Driver.ChooseTextureFormat(). */ -gl_format +mesa_format st_ChooseTextureFormat(struct gl_context *ctx, GLenum target, GLint internalFormat, GLenum format, GLenum type) diff --git a/mesalib/src/mesa/state_tracker/st_format.h b/mesalib/src/mesa/state_tracker/st_format.h index bf042ede1..ce1e2306d 100644 --- a/mesalib/src/mesa/state_tracker/st_format.h +++ b/mesalib/src/mesa/state_tracker/st_format.h @@ -41,9 +41,9 @@ struct pipe_screen; extern enum pipe_format -st_mesa_format_to_pipe_format(gl_format mesaFormat); +st_mesa_format_to_pipe_format(mesa_format mesaFormat); -extern gl_format +extern mesa_format st_pipe_format_to_mesa_format(enum pipe_format pipeFormat); @@ -61,7 +61,7 @@ extern enum pipe_format st_choose_matching_format(struct pipe_screen *screen, unsigned bind, GLenum format, GLenum type, GLboolean swapBytes); -extern gl_format +extern mesa_format st_ChooseTextureFormat(struct gl_context * ctx, GLenum target, GLint internalFormat, GLenum format, GLenum type); diff --git a/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp index 0871dd064..610fc68a8 100644 --- a/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp +++ b/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp @@ -5027,6 +5027,8 @@ shader_stage_to_ptarget(gl_shader_stage stage) return PIPE_SHADER_FRAGMENT; case MESA_SHADER_GEOMETRY: return PIPE_SHADER_GEOMETRY; + case MESA_SHADER_COMPUTE: + return PIPE_SHADER_COMPUTE; } assert(!"should not be reached"); diff --git a/mesalib/src/mesa/state_tracker/st_manager.c b/mesalib/src/mesa/state_tracker/st_manager.c index 8158450dc..215b27634 100644 --- a/mesalib/src/mesa/state_tracker/st_manager.c +++ b/mesalib/src/mesa/state_tracker/st_manager.c @@ -469,7 +469,6 @@ st_context_teximage(struct st_context_iface *stctxi, { struct st_context *st = (struct st_context *) stctxi; struct gl_context *ctx = st->ctx; - struct gl_texture_unit *texUnit = _mesa_get_current_tex_unit(ctx); struct gl_texture_object *texObj; struct gl_texture_image *texImage; struct st_texture_object *stObj; @@ -495,7 +494,8 @@ st_context_teximage(struct st_context_iface *stctxi, return FALSE; } - texObj = _mesa_select_tex_object(ctx, texUnit, target); + texObj = _mesa_get_current_tex_object(ctx, target); + _mesa_lock_texture(ctx, texObj); stObj = st_texture_object(texObj); @@ -508,7 +508,7 @@ st_context_teximage(struct st_context_iface *stctxi, texImage = _mesa_get_tex_image(ctx, texObj, target, level); stImage = st_texture_image(texImage); if (tex) { - gl_format texFormat = st_pipe_format_to_mesa_format(pipe_format); + mesa_format texFormat = st_pipe_format_to_mesa_format(pipe_format); if (util_format_has_alpha(tex->format)) internalFormat = GL_RGBA; diff --git a/mesalib/src/mesa/state_tracker/st_program.c b/mesalib/src/mesa/state_tracker/st_program.c index 7a15b23fa..cadbe1705 100644 --- a/mesalib/src/mesa/state_tracker/st_program.c +++ b/mesalib/src/mesa/state_tracker/st_program.c @@ -944,17 +944,16 @@ st_translate_geometry_program(struct st_context *st, case VARYING_SLOT_TEX5: case VARYING_SLOT_TEX6: case VARYING_SLOT_TEX7: - stgp->input_semantic_name[slot] = TGSI_SEMANTIC_GENERIC; + stgp->input_semantic_name[slot] = st->needs_texcoord_semantic ? + TGSI_SEMANTIC_TEXCOORD : TGSI_SEMANTIC_GENERIC; stgp->input_semantic_index[slot] = (attr - VARYING_SLOT_TEX0); break; case VARYING_SLOT_VAR0: default: assert(attr >= VARYING_SLOT_VAR0 && attr < VARYING_SLOT_MAX); stgp->input_semantic_name[slot] = TGSI_SEMANTIC_GENERIC; - stgp->input_semantic_index[slot] = (VARYING_SLOT_VAR0 - - VARYING_SLOT_TEX0 + - attr - - VARYING_SLOT_VAR0); + stgp->input_semantic_index[slot] = st->needs_texcoord_semantic ? + (attr - VARYING_SLOT_VAR0) : (attr - VARYING_SLOT_TEX0); break; } } @@ -1036,7 +1035,8 @@ st_translate_geometry_program(struct st_context *st, case VARYING_SLOT_TEX5: case VARYING_SLOT_TEX6: case VARYING_SLOT_TEX7: - gs_output_semantic_name[slot] = TGSI_SEMANTIC_GENERIC; + gs_output_semantic_name[slot] = st->needs_texcoord_semantic ? + TGSI_SEMANTIC_TEXCOORD : TGSI_SEMANTIC_GENERIC; gs_output_semantic_index[slot] = (attr - VARYING_SLOT_TEX0); break; case VARYING_SLOT_VAR0: @@ -1044,10 +1044,9 @@ st_translate_geometry_program(struct st_context *st, assert(slot < Elements(gs_output_semantic_name)); assert(attr >= VARYING_SLOT_VAR0); gs_output_semantic_name[slot] = TGSI_SEMANTIC_GENERIC; - gs_output_semantic_index[slot] = (VARYING_SLOT_VAR0 - - VARYING_SLOT_TEX0 + - attr - - VARYING_SLOT_VAR0); + gs_output_semantic_index[slot] = st->needs_texcoord_semantic ? + (attr - VARYING_SLOT_VAR0) : (attr - VARYING_SLOT_TEX0); + break; } } } diff --git a/mesalib/src/mesa/state_tracker/st_vdpau.c b/mesalib/src/mesa/state_tracker/st_vdpau.c index 9b165ee39..c5b4780ce 100644 --- a/mesalib/src/mesa/state_tracker/st_vdpau.c +++ b/mesalib/src/mesa/state_tracker/st_vdpau.c @@ -47,6 +47,7 @@ #include "st_context.h" #include "st_texture.h" #include "st_format.h" +#include "st_cb_flush.h" static void st_vdpau_map_surface(struct gl_context *ctx, GLenum target, GLenum access, @@ -63,7 +64,7 @@ st_vdpau_map_surface(struct gl_context *ctx, GLenum target, GLenum access, struct pipe_resource *res; struct pipe_sampler_view *sv, templ; - gl_format texFormat; + mesa_format texFormat; getProcAddr = ctx->vdpGetProcAddress; if (output) { @@ -163,6 +164,7 @@ st_vdpau_unmap_surface(struct gl_context *ctx, GLenum target, GLenum access, struct gl_texture_image *texImage, const GLvoid *vdpSurface, GLuint index) { + struct st_context *st = st_context(ctx); struct st_texture_object *stObj = st_texture_object(texObj); struct st_texture_image *stImage = st_texture_image(texImage); @@ -171,6 +173,8 @@ st_vdpau_unmap_surface(struct gl_context *ctx, GLenum target, GLenum access, pipe_resource_reference(&stImage->pt, NULL); _mesa_dirty_texobj(ctx, texObj); + + st_flush(st, NULL, 0); } void |