aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libxcb/src/xcb_conn.c7
-rw-r--r--libxcb/src/xcb_in.c7
-rw-r--r--libxcb/src/xcb_out.c38
-rw-r--r--libxcb/src/xcbext.h1
-rw-r--r--libxcb/src/xcbint.h7
-rw-r--r--libxcb/xcb-proto/src/present.xml2
-rw-r--r--libxcb/xcb-proto/src/sync.xml16
-rw-r--r--mesalib/docs/GL3.txt276
-rw-r--r--mesalib/docs/relnotes/10.0.html7
-rw-r--r--mesalib/include/GL/osmesa.h19
-rw-r--r--mesalib/src/gallium/Automake.inc2
-rw-r--r--mesalib/src/mesa/main/performance_monitor.c3
-rw-r--r--mesalib/src/mesa/state_tracker/st_format.c6
-rw-r--r--xorg-server/configure.ac22
14 files changed, 223 insertions, 190 deletions
diff --git a/libxcb/src/xcb_conn.c b/libxcb/src/xcb_conn.c
index 50e7fb604..46390e1da 100644
--- a/libxcb/src/xcb_conn.c
+++ b/libxcb/src/xcb_conn.c
@@ -216,13 +216,16 @@ static int write_vec(xcb_connection_t *c, struct iovec **vector, int *count)
#if HAVE_SENDMSG
if (c->out.out_fd.nfd) {
- char cmsgbuf[CMSG_SPACE(sizeof(int) * XCB_MAX_PASS_FD)];
+ union {
+ struct cmsghdr cmsghdr;
+ char buf[CMSG_SPACE(XCB_MAX_PASS_FD * sizeof(int))];
+ } cmsgbuf;
struct msghdr msg = {
.msg_name = NULL,
.msg_namelen = 0,
.msg_iov = *vector,
.msg_iovlen = n,
- .msg_control = cmsgbuf,
+ .msg_control = cmsgbuf.buf,
.msg_controllen = CMSG_LEN(c->out.out_fd.nfd * sizeof (int)),
};
int i;
diff --git a/libxcb/src/xcb_in.c b/libxcb/src/xcb_in.c
index 8c3a58cc3..fd6c2efd2 100644
--- a/libxcb/src/xcb_in.c
+++ b/libxcb/src/xcb_in.c
@@ -888,13 +888,16 @@ int _xcb_in_read(xcb_connection_t *c)
.iov_base = c->in.queue + c->in.queue_len,
.iov_len = sizeof(c->in.queue) - c->in.queue_len,
};
- char cmsgbuf[CMSG_SPACE(sizeof(int) * XCB_MAX_PASS_FD)];
+ union {
+ struct cmsghdr cmsghdr;
+ char buf[CMSG_SPACE(XCB_MAX_PASS_FD * sizeof(int))];
+ } cmsgbuf;
struct msghdr msg = {
.msg_name = NULL,
.msg_namelen = 0,
.msg_iov = &iov,
.msg_iovlen = 1,
- .msg_control = cmsgbuf,
+ .msg_control = cmsgbuf.buf,
.msg_controllen = CMSG_SPACE(sizeof(int) * (XCB_MAX_PASS_FD - c->in.in_fd.nfd)),
};
n = recvmsg(c->fd, &msg, 0);
diff --git a/libxcb/src/xcb_out.c b/libxcb/src/xcb_out.c
index 1a3aca515..18bb5f912 100644
--- a/libxcb/src/xcb_out.c
+++ b/libxcb/src/xcb_out.c
@@ -86,24 +86,21 @@ static void send_sync(xcb_connection_t *c)
static void get_socket_back(xcb_connection_t *c)
{
- while (c->out.return_socket) {
- /* we are about to release the lock,
- so make a copy of the current status */
- xcb_return_socket_func_t return_socket = c->out.return_socket;
- void *socket_closure = c->out.socket_closure;
- int socket_seq = c->out.socket_seq;
-
- pthread_mutex_unlock(&c->iolock);
- return_socket(socket_closure);
- pthread_mutex_lock(&c->iolock);
-
- /* make sure nobody else has acquired the socket */
- if (socket_seq == c->out.socket_seq) {
- c->out.return_socket = 0;
- c->out.socket_closure = 0;
- _xcb_in_replies_done(c);
- }
- }
+ while(c->out.return_socket && c->out.socket_moving)
+ pthread_cond_wait(&c->out.socket_cond, &c->iolock);
+ if(!c->out.return_socket)
+ return;
+
+ c->out.socket_moving = 1;
+ pthread_mutex_unlock(&c->iolock);
+ c->out.return_socket(c->out.socket_closure);
+ pthread_mutex_lock(&c->iolock);
+ c->out.socket_moving = 0;
+
+ pthread_cond_broadcast(&c->out.socket_cond);
+ c->out.return_socket = 0;
+ c->out.socket_closure = 0;
+ _xcb_in_replies_done(c);
}
/* Public interface */
@@ -299,7 +296,6 @@ int xcb_take_socket(xcb_connection_t *c, void (*return_socket)(void *closure), v
{
c->out.return_socket = return_socket;
c->out.socket_closure = closure;
- ++c->out.socket_seq;
if(flags)
_xcb_in_expect_reply(c, c->out.request, WORKAROUND_EXTERNAL_SOCKET_OWNER, flags);
assert(c->out.request == c->out.request_written);
@@ -336,9 +332,11 @@ int xcb_flush(xcb_connection_t *c)
int _xcb_out_init(_xcb_out *out)
{
+ if(pthread_cond_init(&out->socket_cond, 0))
+ return 0;
out->return_socket = 0;
out->socket_closure = 0;
- out->socket_seq = 0;
+ out->socket_moving = 0;
if(pthread_cond_init(&out->cond, 0))
return 0;
diff --git a/libxcb/src/xcbext.h b/libxcb/src/xcbext.h
index 1eb1be77f..20ec1c37a 100644
--- a/libxcb/src/xcbext.h
+++ b/libxcb/src/xcbext.h
@@ -69,7 +69,6 @@ void xcb_send_fd(xcb_connection_t *c, int fd);
* callback which XCB can call when it wants the write side of the
* socket back to make a request. This callback synchronizes with the
* external socket owner and flushes any output queues if appropriate.
- * The callback might be called from different threads at the same time.
* If you are sending requests which won't cause a reply, please note the
* comment for xcb_writev which explains some sequence number wrap issues.
* */
diff --git a/libxcb/src/xcbint.h b/libxcb/src/xcbint.h
index 5c904fbb7..b25f03b3e 100644
--- a/libxcb/src/xcbint.h
+++ b/libxcb/src/xcbint.h
@@ -79,8 +79,6 @@ void *_xcb_map_remove(_xcb_map *q, unsigned int key);
/* xcb_out.c */
-typedef void (*xcb_return_socket_func_t)(void *closure);
-
#if HAVE_SENDMSG
#define XCB_MAX_PASS_FD 16
@@ -95,9 +93,10 @@ typedef struct _xcb_out {
pthread_cond_t cond;
int writing;
- xcb_return_socket_func_t return_socket;
+ pthread_cond_t socket_cond;
+ void (*return_socket)(void *closure);
void *socket_closure;
- unsigned int socket_seq;
+ int socket_moving;
char queue[XCB_QUEUE_BUFFER_SIZE];
int queue_len;
diff --git a/libxcb/xcb-proto/src/present.xml b/libxcb/xcb-proto/src/present.xml
index 57e7cd364..a9adc2ba8 100644
--- a/libxcb/xcb-proto/src/present.xml
+++ b/libxcb/xcb-proto/src/present.xml
@@ -136,7 +136,7 @@ OF THIS SOFTWARE.
<event name="Generic" number="0">
<field type="CARD8" name="extension" />
<field type="CARD32" name="length" />
- <field type="CARD16" name="evtype" enum="EventType" />
+ <field type="CARD16" name="evtype" />
<pad bytes="2" />
<field type="EVENT" name="event" />
</event>
diff --git a/libxcb/xcb-proto/src/sync.xml b/libxcb/xcb-proto/src/sync.xml
index bc07c5b63..23175cb35 100644
--- a/libxcb/xcb-proto/src/sync.xml
+++ b/libxcb/xcb-proto/src/sync.xml
@@ -143,19 +143,19 @@ for licensing information.
</bitcase>
<bitcase>
<enumref ref="CA">ValueType</enumref>
- <field type="CARD32" name="valueType" mask="VALUETYPE" />
+ <field type="CARD32" name="valueType" enum="VALUETYPE" />
</bitcase>
<bitcase>
<enumref ref="CA">Value</enumref>
- <field type="INT64" name="value" />
+ <field type="sync:INT64" name="value" />
</bitcase>
<bitcase>
<enumref ref="CA">TestType</enumref>
- <field type="CARD32" name="testType" mask="TESTTYPE" />
+ <field type="CARD32" name="testType" enum="TESTTYPE" />
</bitcase>
<bitcase>
<enumref ref="CA">Delta</enumref>
- <field type="INT64" name="delta" />
+ <field type="sync:INT64" name="delta" />
</bitcase>
<bitcase>
<enumref ref="CA">Events</enumref>
@@ -175,19 +175,19 @@ for licensing information.
</bitcase>
<bitcase>
<enumref ref="CA">ValueType</enumref>
- <field type="CARD32" name="valueType" mask="VALUETYPE" />
+ <field type="CARD32" name="valueType" enum="VALUETYPE" />
</bitcase>
<bitcase>
<enumref ref="CA">Value</enumref>
- <field type="INT64" name="value" />
+ <field type="sync:INT64" name="value" />
</bitcase>
<bitcase>
<enumref ref="CA">TestType</enumref>
- <field type="CARD32" name="testType" mask="TESTTYPE" />
+ <field type="CARD32" name="testType" enum="TESTTYPE" />
</bitcase>
<bitcase>
<enumref ref="CA">Delta</enumref>
- <field type="INT64" name="delta" />
+ <field type="sync:INT64" name="delta" />
</bitcase>
<bitcase>
<enumref ref="CA">Events</enumref>
diff --git a/mesalib/docs/GL3.txt b/mesalib/docs/GL3.txt
index a8cffab44..5f6fa7e80 100644
--- a/mesalib/docs/GL3.txt
+++ b/mesalib/docs/GL3.txt
@@ -18,164 +18,164 @@ are exposed in the 3.0 context as extensions.
Feature Status
----------------------------------------------------- ------------------------
-GL 3.0:
-
-GLSL 1.30 DONE (i965, r600, radeonsi)
-glBindFragDataLocation, glGetFragDataLocation DONE
-Conditional rendering (GL_NV_conditional_render) DONE (i965, r300, r600, radeonsi, swrast)
-Map buffer subranges (GL_ARB_map_buffer_range) DONE (i965, r300, r600, radeonsi, swrast)
-Clamping controls (GL_ARB_color_buffer_float) DONE (i965, r300, r600, radeonsi)
-Float textures, renderbuffers (GL_ARB_texture_float) DONE (i965, r300, r600, radeonsi)
-GL_EXT_packed_float DONE (i965, r600, radeonsi)
-GL_EXT_texture_shared_exponent DONE (i965, r600, radeonsi, swrast)
-Float depth buffers (GL_ARB_depth_buffer_float) DONE (i965, r600, radeonsi)
-Framebuffer objects (GL_ARB_framebuffer_object) DONE (i965, r300, r600, radeonsi, swrast)
-Half-float DONE (i965, r300, r600, radeonsi, swrast)
-Non-normalized Integer texture/framebuffer formats DONE (i965, r600, radeonsi)
-1D/2D Texture arrays DONE (i965, r600, radeonsi)
-Per-buffer blend and masks (GL_EXT_draw_buffers2) DONE (i965, r600, radeonsi, swrast)
-GL_EXT_texture_compression_rgtc DONE (i965, r300, r600, radeonsi, swrast)
-Red and red/green texture formats DONE (i965, r300, r600, radeonsi, swrast)
-Transform feedback (GL_EXT_transform_feedback) DONE (i965, r600, radeonsi)
-Vertex array objects (GL_APPLE_vertex_array_object) DONE (all drivers)
-sRGB framebuffer format (GL_EXT_framebuffer_sRGB) DONE (i965, r600, radeonsi)
-glClearBuffer commands DONE
-glGetStringi command DONE
-glTexParameterI, glGetTexParameterI commands DONE
-glVertexAttribI commands DONE
-Depth format cube textures DONE (i965, r600, radeonsi)
-GLX_ARB_create_context (GLX 1.4 is required) DONE
-
-
-GL 3.1:
-
-GLSL 1.40 DONE (i965, r600, radeonsi)
-Forward compatible context support/deprecations DONE (i965, r600, radeonsi)
-Instanced drawing (GL_ARB_draw_instanced) DONE (i965, r600, radeonsi, swrast)
-Buffer copying (GL_ARB_copy_buffer) DONE (i965, r300, r600, radeonsi, swrast)
-Primitive restart (GL_NV_primitive_restart) DONE (i965, r300, r600, radeonsi)
-16 vertex texture image units DONE (i965, r600, radeonsi)
-Texture buffer objs (GL_ARB_texture_buffer_object) DONE for OpenGL 3.1 contexts (i965, r600, radeonsi)
-Rectangular textures (GL_ARB_texture_rectangle) DONE (i965, r300, r600, radeonsi, swrast)
-Uniform buffer objs (GL_ARB_uniform_buffer_object) DONE (i965, r600, radeonsi, swrast)
-Signed normalized textures (GL_EXT_texture_snorm) DONE (i965, r300, r600, radeonsi)
-
-
-GL 3.2:
-
-Core/compatibility profiles DONE
-GLSL 1.50 DONE (i965)
-Geometry shaders DONE (i965)
-BGRA vertex order (GL_ARB_vertex_array_bgra) DONE (i965, r300, r600, radeonsi, swrast)
-Base vertex offset(GL_ARB_draw_elements_base_vertex) DONE (i965, r300, r600, radeonsi, swrast)
-Frag shader coord (GL_ARB_fragment_coord_conventions) DONE (i965, r300, r600, radeonsi, swrast)
-Provoking vertex (GL_ARB_provoking_vertex) DONE (i965, r300, r600, radeonsi, swrast)
-Seamless cubemaps (GL_ARB_seamless_cube_map) DONE (i965, r600, radeonsi)
-Multisample textures (GL_ARB_texture_multisample) DONE (i965, r600, radeonsi)
-Frag depth clamp (GL_ARB_depth_clamp) DONE (i965, r600, swrast, radeonsi)
-Fence objects (GL_ARB_sync) DONE (i965, r300, r600, radeonsi, swrast)
-GLX_ARB_create_context_profile DONE
-
-
-GL 3.3:
-
-GLSL 3.30 DONE (i965)
-GL_ARB_blend_func_extended DONE (i965, r600, radeonsi, softpipe)
-GL_ARB_explicit_attrib_location DONE (i915, i965, r300, r600, radeonsi, swrast)
-GL_ARB_occlusion_query2 DONE (i965, r300, r600, radeonsi, swrast)
-GL_ARB_sampler_objects DONE (i965, r300, r600, radeonsi)
-GL_ARB_shader_bit_encoding DONE (i965, r600, radeonsi)
-GL_ARB_texture_rgb10_a2ui DONE (i965, r600, radeonsi)
-GL_ARB_texture_swizzle DONE (i965, r300, r600, radeonsi, swrast)
-GL_ARB_timer_query DONE (i965, r600, radeonsi)
-GL_ARB_instanced_arrays DONE (i965, r300, r600, radeonsi)
-GL_ARB_vertex_type_2_10_10_10_rev DONE (i965, r600, radeonsi)
+GL 3.0 --- all DONE: i965, nv50, nvc0, r600, radeonsi
+
+ GLSL 1.30 DONE ()
+ glBindFragDataLocation, glGetFragDataLocation DONE
+ Conditional rendering (GL_NV_conditional_render) DONE (r300, swrast)
+ Map buffer subranges (GL_ARB_map_buffer_range) DONE (r300, swrast)
+ Clamping controls (GL_ARB_color_buffer_float) DONE (r300)
+ Float textures, renderbuffers (GL_ARB_texture_float) DONE (r300)
+ GL_EXT_packed_float DONE ()
+ GL_EXT_texture_shared_exponent DONE (swrast)
+ Float depth buffers (GL_ARB_depth_buffer_float) DONE ()
+ Framebuffer objects (GL_ARB_framebuffer_object) DONE (r300, swrast)
+ Half-float DONE (r300, swrast)
+ Non-normalized Integer texture/framebuffer formats DONE ()
+ 1D/2D Texture arrays DONE ()
+ Per-buffer blend and masks (GL_EXT_draw_buffers2) DONE (swrast)
+ GL_EXT_texture_compression_rgtc DONE (r300, swrast)
+ Red and red/green texture formats DONE (r300, swrast)
+ Transform feedback (GL_EXT_transform_feedback) DONE ()
+ Vertex array objects (GL_APPLE_vertex_array_object) DONE
+ sRGB framebuffer format (GL_EXT_framebuffer_sRGB) DONE ()
+ glClearBuffer commands DONE
+ glGetStringi command DONE
+ glTexParameterI, glGetTexParameterI commands DONE
+ glVertexAttribI commands DONE
+ Depth format cube textures DONE ()
+ GLX_ARB_create_context (GLX 1.4 is required) DONE
+
+
+GL 3.1 --- all DONE: i965, nv50, nvc0, r600, radeonsi
+
+ GLSL 1.40 DONE ()
+ Forward compatible context support/deprecations DONE ()
+ Instanced drawing (GL_ARB_draw_instanced) DONE (swrast)
+ Buffer copying (GL_ARB_copy_buffer) DONE (r300, swrast)
+ Primitive restart (GL_NV_primitive_restart) DONE (r300, )
+ 16 vertex texture image units DONE ()
+ Texture buffer objs (GL_ARB_texture_buffer_object) DONE for OpenGL 3.1 contexts ()
+ Rectangular textures (GL_ARB_texture_rectangle) DONE (r300, swrast)
+ Uniform buffer objs (GL_ARB_uniform_buffer_object) DONE (swrast)
+ Signed normalized textures (GL_EXT_texture_snorm) DONE (r300)
+
+
+GL 3.2 --- all DONE: i965
+
+ Core/compatibility profiles DONE
+ GLSL 1.50 DONE ()
+ Geometry shaders DONE ()
+ BGRA vertex order (GL_ARB_vertex_array_bgra) DONE (nv50, nvc0, r300, r600, radeonsi, swrast)
+ Base vertex offset(GL_ARB_draw_elements_base_vertex) DONE (nv50, nvc0, r300, r600, radeonsi, swrast)
+ Frag shader coord (GL_ARB_fragment_coord_conventions) DONE (nv50, nvc0, r300, r600, radeonsi, swrast)
+ Provoking vertex (GL_ARB_provoking_vertex) DONE (nv50, nvc0, r300, r600, radeonsi, swrast)
+ Seamless cubemaps (GL_ARB_seamless_cube_map) DONE (nvc0, r600, radeonsi)
+ Multisample textures (GL_ARB_texture_multisample) DONE (nvc0, r600, radeonsi)
+ Frag depth clamp (GL_ARB_depth_clamp) DONE (nv50, nvc0, r600, swrast, radeonsi)
+ Fence objects (GL_ARB_sync) DONE (nv50, nvc0, r300, r600, radeonsi, swrast)
+ GLX_ARB_create_context_profile DONE
+
+
+GL 3.3 --- all DONE: i965
+
+ GLSL 3.30 DONE ()
+ GL_ARB_blend_func_extended DONE (nv50, nvc0, r600, radeonsi, softpipe)
+ GL_ARB_explicit_attrib_location DONE (i915, nv50, nvc0, r300, r600, radeonsi, swrast)
+ GL_ARB_occlusion_query2 DONE (nv50, nvc0, r300, r600, radeonsi, swrast)
+ GL_ARB_sampler_objects DONE (nv50, nvc0, r300, r600, radeonsi)
+ GL_ARB_shader_bit_encoding DONE (nv50, nvc0, r600, radeonsi)
+ GL_ARB_texture_rgb10_a2ui DONE (r600, radeonsi)
+ GL_ARB_texture_swizzle DONE (nv50, nvc0, r300, r600, radeonsi, swrast)
+ GL_ARB_timer_query DONE (nv50, nvc0, r600, radeonsi)
+ GL_ARB_instanced_arrays DONE (nv50, nvc0, r300, r600, radeonsi)
+ GL_ARB_vertex_type_2_10_10_10_rev DONE (r600, radeonsi)
GL 4.0:
-GLSL 4.0 not started
-GL_ARB_texture_query_lod DONE (i965)
-GL_ARB_draw_buffers_blend DONE (i965, r600, radeonsi, softpipe)
-GL_ARB_draw_indirect started (Christoph)
-GL_ARB_gpu_shader5 started
-GL_ARB_gpu_shader_fp64 not started
-GL_ARB_sample_shading DONE (i965)
-GL_ARB_shader_subroutine not started
-GL_ARB_tessellation_shader not started
-GL_ARB_texture_buffer_object_rgb32 DONE (i965, r600, radeonsi, softpipe)
-GL_ARB_texture_cube_map_array DONE (i965, r600, softpipe)
-GL_ARB_texture_gather DONE (i965)
-GL_ARB_transform_feedback2 DONE (i965, r600, radeonsi)
-GL_ARB_transform_feedback3 DONE (i965, r600, radeonsi)
+ GLSL 4.0 not started
+ GL_ARB_texture_query_lod DONE (i965)
+ GL_ARB_draw_buffers_blend DONE (i965, r600, radeonsi, softpipe)
+ GL_ARB_draw_indirect started (Christoph)
+ GL_ARB_gpu_shader5 started
+ GL_ARB_gpu_shader_fp64 not started
+ GL_ARB_sample_shading DONE (i965)
+ GL_ARB_shader_subroutine not started
+ GL_ARB_tessellation_shader not started
+ GL_ARB_texture_buffer_object_rgb32 DONE (i965, r600, radeonsi, softpipe)
+ GL_ARB_texture_cube_map_array DONE (i965, r600, softpipe)
+ GL_ARB_texture_gather DONE (i965)
+ GL_ARB_transform_feedback2 DONE (i965, r600, radeonsi)
+ GL_ARB_transform_feedback3 DONE (i965, r600, radeonsi)
GL 4.1:
-GLSL 4.1 not started
-GL_ARB_ES2_compatibility DONE (i965, r300, r600, radeonsi)
-GL_ARB_get_program_binary DONE (0 binary formats)
-GL_ARB_separate_shader_objects some infrastructure done
-GL_ARB_shader_precision not started
-GL_ARB_vertex_attrib_64bit not started
-GL_ARB_viewport_array not started
+ GLSL 4.1 not started
+ GL_ARB_ES2_compatibility DONE (i965, r300, r600, radeonsi)
+ GL_ARB_get_program_binary DONE (0 binary formats)
+ GL_ARB_separate_shader_objects some infrastructure done
+ GL_ARB_shader_precision not started
+ GL_ARB_vertex_attrib_64bit not started
+ GL_ARB_viewport_array not started
GL 4.2:
-GLSL 4.2 not started
-GL_ARB_texture_compression_bptc not started
-GL_ARB_compressed_texture_pixel_storage not started
-GL_ARB_shader_atomic_counters DONE (i965)
-GL_ARB_texture_storage DONE (all drivers)
-GL_ARB_transform_feedback_instanced DONE (i965, r600, radeonsi)
-GL_ARB_base_instance DONE (i965, nv50, nvc0, r600, radeonsi)
-GL_ARB_shader_image_load_store not started
-GL_ARB_conservative_depth DONE (all drivers that support GLSL 1.30)
-GL_ARB_shading_language_420pack DONE (all drivers that support GLSL 1.30)
-GL_ARB_internalformat_query DONE (i965, r300, r600, radeonsi)
-GL_ARB_map_buffer_alignment DONE (r300, r600, radeonsi)
+ GLSL 4.2 not started
+ GL_ARB_texture_compression_bptc not started
+ GL_ARB_compressed_texture_pixel_storage not started
+ GL_ARB_shader_atomic_counters DONE (i965)
+ GL_ARB_texture_storage DONE (all drivers)
+ GL_ARB_transform_feedback_instanced DONE (i965, r600, radeonsi)
+ GL_ARB_base_instance DONE (i965, nv50, nvc0, r600, radeonsi)
+ GL_ARB_shader_image_load_store not started
+ GL_ARB_conservative_depth DONE (all drivers that support GLSL 1.30)
+ GL_ARB_shading_language_420pack DONE (all drivers that support GLSL 1.30)
+ GL_ARB_internalformat_query DONE (i965, r300, r600, radeonsi)
+ GL_ARB_map_buffer_alignment DONE (r300, r600, radeonsi)
GL 4.3:
-GLSL 4.3 not started
-GL_ARB_arrays_of_arrays not started
-GL_ARB_ES3_compatibility DONE (i965)
-GL_ARB_clear_buffer_object not started
-GL_ARB_compute_shader not started
-GL_ARB_copy_image not started
-GL_KHR_debug DONE (all drivers)
-GL_ARB_explicit_uniform_location not started
-GL_ARB_fragment_layer_viewport not started
-GL_ARB_framebuffer_no_attachments not started
-GL_ARB_internalformat_query2 not started
-GL_ARB_invalidate_subdata DONE (all drivers)
-GL_ARB_multi_draw_indirect not started
-GL_ARB_program_interface_query not started
-GL_ARB_robust_buffer_access_behavior not started
-GL_ARB_shader_image_size not started
-GL_ARB_shader_storage_buffer_object not started
-GL_ARB_stencil_texturing not started
-GL_ARB_texture_buffer_range DONE (nv50, nvc0, i965, r600, radeonsi)
-GL_ARB_texture_query_levels DONE (i965)
-GL_ARB_texture_storage_multisample DONE (all drivers that support GL_ARB_texture_multisample)
-GL_ARB_texture_view not started
-GL_ARB_vertex_attrib_binding DONE (all drivers)
+ GLSL 4.3 not started
+ GL_ARB_arrays_of_arrays not started
+ GL_ARB_ES3_compatibility DONE (i965)
+ GL_ARB_clear_buffer_object not started
+ GL_ARB_compute_shader not started
+ GL_ARB_copy_image not started
+ GL_KHR_debug DONE (all drivers)
+ GL_ARB_explicit_uniform_location not started
+ GL_ARB_fragment_layer_viewport not started
+ GL_ARB_framebuffer_no_attachments not started
+ GL_ARB_internalformat_query2 not started
+ GL_ARB_invalidate_subdata DONE (all drivers)
+ GL_ARB_multi_draw_indirect not started
+ GL_ARB_program_interface_query not started
+ GL_ARB_robust_buffer_access_behavior not started
+ GL_ARB_shader_image_size not started
+ GL_ARB_shader_storage_buffer_object not started
+ GL_ARB_stencil_texturing not started
+ GL_ARB_texture_buffer_range DONE (nv50, nvc0, i965, r600, radeonsi)
+ GL_ARB_texture_query_levels DONE (i965)
+ GL_ARB_texture_storage_multisample DONE (all drivers that support GL_ARB_texture_multisample)
+ GL_ARB_texture_view not started
+ GL_ARB_vertex_attrib_binding DONE (all drivers)
GL 4.4:
-GLSL 4.4 not started
-GL_MAX_VERTEX_ATTRIB_STRIDE not started
-GL_ARB_buffer_storage not started
-GL_ARB_clear_texture not started
-GL_ARB_enhanced_layouts not started
-GL_ARB_multi_bind not started
-GL_ARB_query_buffer_object not started
-GL_ARB_texture_mirror_clamp_to_edge DONE (i965, nv30, nv50, nvc0, r300, r600, radeonsi, swrast)
-GL_ARB_texture_stencil8 not started
-GL_ARB_vertex_type_10f_11f_11f_rev DONE (i965, r600)
+ GLSL 4.4 not started
+ GL_MAX_VERTEX_ATTRIB_STRIDE not started
+ GL_ARB_buffer_storage not started
+ GL_ARB_clear_texture not started
+ GL_ARB_enhanced_layouts not started
+ GL_ARB_multi_bind not started
+ GL_ARB_query_buffer_object not started
+ GL_ARB_texture_mirror_clamp_to_edge DONE (i965, nv30, nv50, nvc0, r300, r600, radeonsi, swrast)
+ GL_ARB_texture_stencil8 not started
+ GL_ARB_vertex_type_10f_11f_11f_rev DONE (i965, r600)
More info about these features and the work involved can be found at
diff --git a/mesalib/docs/relnotes/10.0.html b/mesalib/docs/relnotes/10.0.html
index eabe77f83..1e4f7716f 100644
--- a/mesalib/docs/relnotes/10.0.html
+++ b/mesalib/docs/relnotes/10.0.html
@@ -55,6 +55,7 @@ Note: some of the new features are only available with certain drivers.
<li>GL_ARB_vertex_attrib_binding</li>
<li>GL_ARB_vertex_type_10f_11f_11f_rev on i965 and r600g</li>
<li>GL_KHR_debug</li>
+<li>GLX_MESA_query_renderer</li>
</ul>
@@ -64,7 +65,11 @@ TBD.
<h2>Changes</h2>
-TBD.
+<ul>
+<li>Removed X.Org state tracker (unmaintained and broken)</li>
+<li>Removed the video-accel r300 targets</li>
+<li>Removed the video-accel softpipe targets</li>
+</ul>
</div>
</body>
diff --git a/mesalib/include/GL/osmesa.h b/mesalib/include/GL/osmesa.h
index 10c472d49..16ee89ae4 100644
--- a/mesalib/include/GL/osmesa.h
+++ b/mesalib/include/GL/osmesa.h
@@ -60,8 +60,8 @@ extern "C" {
#include <GL/gl.h>
-#define OSMESA_MAJOR_VERSION 6
-#define OSMESA_MINOR_VERSION 5
+#define OSMESA_MAJOR_VERSION 10
+#define OSMESA_MINOR_VERSION 0
#define OSMESA_PATCH_VERSION 0
@@ -270,6 +270,21 @@ OSMesaGetProcAddress( const char *funcName );
GLAPI void GLAPIENTRY
OSMesaColorClamp(GLboolean enable);
+
+/**
+ * Enable/disable Gallium post-process filters.
+ * This should be called after a context is created, but before it is
+ * made current for the first time. After a context has been made
+ * current, this function has no effect.
+ * If the enable_value param is zero, the filter is disabled. Otherwise
+ * the filter is enabled, and the value may control the filter's quality.
+ * New in Mesa 10.0
+ */
+GLAPI void GLAPIENTRY
+OSMesaPostprocess(OSMesaContext osmesa, const char *filter,
+ unsigned enable_value);
+
+
#ifdef __cplusplus
}
#endif
diff --git a/mesalib/src/gallium/Automake.inc b/mesalib/src/gallium/Automake.inc
index b6b9b367a..1e4a34f5d 100644
--- a/mesalib/src/gallium/Automake.inc
+++ b/mesalib/src/gallium/Automake.inc
@@ -65,11 +65,11 @@ GALLIUM_VDPAU_LINKER_FLAGS = \
-shared \
-no-undefined
-# TODO: add -export-symbols-regex
GALLIUM_XVMC_LINKER_FLAGS = \
-module \
-version-number $(XVMC_MAJOR):$(XVMC_MINOR) \
-shared \
+ -export-symbols-regex '^XvMC' \
-no-undefined
GALLIUM_VDPAU_LIB_DEPS = \
diff --git a/mesalib/src/mesa/main/performance_monitor.c b/mesalib/src/mesa/main/performance_monitor.c
index 6491b4200..4981e6fb2 100644
--- a/mesalib/src/mesa/main/performance_monitor.c
+++ b/mesalib/src/mesa/main/performance_monitor.c
@@ -547,6 +547,7 @@ _mesa_GetPerfMonitorCounterDataAMD(GLuint monitor, GLenum pname,
GET_CURRENT_CONTEXT(ctx);
struct gl_perf_monitor_object *m = lookup_monitor(ctx, monitor);
+ bool result_available;
if (m == NULL) {
_mesa_error(ctx, GL_INVALID_VALUE,
@@ -569,7 +570,7 @@ _mesa_GetPerfMonitorCounterDataAMD(GLuint monitor, GLenum pname,
}
/* If the monitor has never ended, there is no result. */
- bool result_available = m->Ended &&
+ result_available = m->Ended &&
ctx->Driver.IsPerfMonitorResultAvailable(ctx, m);
/* AMD appears to return 0 for all queries unless a result is available. */
diff --git a/mesalib/src/mesa/state_tracker/st_format.c b/mesalib/src/mesa/state_tracker/st_format.c
index 33c2ca661..ec2552384 100644
--- a/mesalib/src/mesa/state_tracker/st_format.c
+++ b/mesalib/src/mesa/state_tracker/st_format.c
@@ -45,6 +45,7 @@
#include "pipe/p_defines.h"
#include "pipe/p_screen.h"
#include "util/u_format.h"
+#include "st_cb_texture.h"
#include "st_context.h"
#include "st_format.h"
@@ -1726,6 +1727,7 @@ st_ChooseTextureFormat(struct gl_context *ctx, GLenum target,
struct st_context *st = st_context(ctx);
enum pipe_format pFormat;
unsigned bindings;
+ enum pipe_texture_target pTarget = gl_target_to_pipe(target);
if (target == GL_TEXTURE_1D || target == GL_TEXTURE_1D_ARRAY) {
/* We don't do compression for these texture targets because of
@@ -1782,12 +1784,12 @@ st_ChooseTextureFormat(struct gl_context *ctx, GLenum target,
}
pFormat = st_choose_format(st, internalFormat, format, type,
- PIPE_TEXTURE_2D, 0, bindings, ctx->Mesa_DXTn);
+ pTarget, 0, bindings, ctx->Mesa_DXTn);
if (pFormat == PIPE_FORMAT_NONE) {
/* try choosing format again, this time without render target bindings */
pFormat = st_choose_format(st, internalFormat, format, type,
- PIPE_TEXTURE_2D, 0, PIPE_BIND_SAMPLER_VIEW,
+ pTarget, 0, PIPE_BIND_SAMPLER_VIEW,
ctx->Mesa_DXTn);
}
diff --git a/xorg-server/configure.ac b/xorg-server/configure.ac
index 1e6f813d8..2f4edee54 100644
--- a/xorg-server/configure.ac
+++ b/xorg-server/configure.ac
@@ -305,13 +305,6 @@ AC_CHECK_HEADER([execinfo.h],[
])]
)
-PKG_CHECK_MODULES(LIBUNWIND, libunwind, [HAVE_LIBUNWIND=yes], [HAVE_LIBUNWIND=no])
-if test "x$HAVE_LIBUNWIND" = xyes; then
- AC_DEFINE(HAVE_LIBUNWIND, 1, [Have libunwind support])
-fi
-AM_CONDITIONAL(HAVE_LIBUNWIND, [test "x$HAVE_LIBUNWIND" = xyes])
-
-
dnl ---------------------------------------------------------------------------
dnl Bus options and CPU capabilities. Replaces logic in
dnl hw/xfree86/os-support/bus/Makefile.am, among others.
@@ -654,6 +647,7 @@ dnl kdrive options
AC_ARG_ENABLE(kdrive-kbd, AS_HELP_STRING([--enable-kdrive-kbd], [Build kbd driver for kdrive (default: auto)]), [KDRIVE_KBD=$enableval], [KDRIVE_KBD=auto])
AC_ARG_ENABLE(kdrive-mouse, AC_HELP_STRING([--enable-kdrive-mouse], [Build mouse driver for kdrive (default: auto)]), [KDRIVE_MOUSE=$enableval], [KDRIVE_MOUSE=auto])
AC_ARG_ENABLE(kdrive-evdev, AC_HELP_STRING([--enable-kdrive-evdev], [Build evdev driver for kdrive (default: auto)]), [KDRIVE_EVDEV=$enableval], [KDRIVE_EVDEV=auto])
+AC_ARG_ENABLE(libunwind, AS_HELP_STRING([--enable-libunwind], [Use libunwind for backtracing (default: auto)]), [LIBUNWIND="$enableval"], [LIBUNWIND="auto"])
dnl chown/chmod to be setuid root as part of build
@@ -1616,6 +1610,20 @@ AC_SUBST(SHA1_CFLAGS)
PKG_CHECK_MODULES([XSERVERCFLAGS], [$REQUIRED_MODULES $REQUIRED_LIBS])
PKG_CHECK_MODULES([XSERVERLIBS], [$REQUIRED_LIBS])
+PKG_CHECK_MODULES(LIBUNWIND, libunwind, [HAVE_LIBUNWIND=yes], [HAVE_LIBUNWIND=no])
+if test "x$LIBUNWIND" = "xauto"; then
+ LIBUNWIND="$HAVE_LIBUNWIND"
+fi
+
+if test "x$LIBUNWIND" = "xyes"; then
+ if test "x$HAVE_LIBUNWIND" != "xyes"; then
+ AC_MSG_ERROR([libunwind requested but not installed.])
+ fi
+ AC_DEFINE(HAVE_LIBUNWIND, 1, [Have libunwind support])
+fi
+
+AM_CONDITIONAL(HAVE_LIBUNWIND, [test "x$LIBUNWIND" = xyes])
+
# Autotools has some unfortunate issues with library handling. In order to
# get a server to rebuild when a dependency in the tree is changed, it must
# be listed in SERVERNAME_DEPENDENCIES. However, no system libraries may be