diff options
-rw-r--r-- | libxcb/src/xcb_conn.c | 7 | ||||
-rw-r--r-- | libxcb/src/xcb_in.c | 7 | ||||
-rw-r--r-- | libxcb/src/xcb_out.c | 38 | ||||
-rw-r--r-- | libxcb/src/xcbext.h | 1 | ||||
-rw-r--r-- | libxcb/src/xcbint.h | 7 | ||||
-rw-r--r-- | libxcb/xcb-proto/src/present.xml | 2 | ||||
-rw-r--r-- | libxcb/xcb-proto/src/sync.xml | 16 | ||||
-rw-r--r-- | mesalib/docs/GL3.txt | 276 | ||||
-rw-r--r-- | mesalib/docs/relnotes/10.0.html | 7 | ||||
-rw-r--r-- | mesalib/include/GL/osmesa.h | 19 | ||||
-rw-r--r-- | mesalib/src/gallium/Automake.inc | 2 | ||||
-rw-r--r-- | mesalib/src/mesa/main/performance_monitor.c | 3 | ||||
-rw-r--r-- | mesalib/src/mesa/state_tracker/st_format.c | 6 | ||||
-rw-r--r-- | xorg-server/configure.ac | 22 |
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 |