Mesa (master): u_blitter: add a custom blitter call passing a dsa cso
Module: Mesa Branch: master Commit: c262c4a2ff1a19d0136771767ba63f04cf3b83e3 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c262c4a2ff1a19d0136771767ba63f04cf3b83e3 Author: Dave Airlie airl...@redhat.com Date: Thu Sep 23 14:18:22 2010 +1000 u_blitter: add a custom blitter call passing a dsa cso reimplement the flush stage added for r300 to allow a custom DSA stage to be used in the pipeline, this allows for r600 hw DB-CB flushes. --- src/gallium/auxiliary/util/u_blitter.c | 45 ++-- src/gallium/auxiliary/util/u_blitter.h |6 2 files changed, 37 insertions(+), 14 deletions(-) diff --git a/src/gallium/auxiliary/util/u_blitter.c b/src/gallium/auxiliary/util/u_blitter.c index f93ef26..c160716 100644 --- a/src/gallium/auxiliary/util/u_blitter.c +++ b/src/gallium/auxiliary/util/u_blitter.c @@ -964,16 +964,18 @@ void util_blitter_clear_depth_stencil(struct blitter_context *blitter, blitter_restore_CSOs(ctx); } -/* Clear a region of a depth stencil surface. */ -void util_blitter_flush_depth_stencil(struct blitter_context *blitter, - struct pipe_surface *dstsurf) +/* draw a rectangle across a region using a custom dsa stage - for r600g */ +void util_blitter_custom_depth_stencil(struct blitter_context *blitter, + struct pipe_surface *zsurf, + struct pipe_surface *cbsurf, + void *dsa_stage, float depth) { struct blitter_context_priv *ctx = (struct blitter_context_priv*)blitter; struct pipe_context *pipe = ctx-base.pipe; struct pipe_framebuffer_state fb_state; - assert(dstsurf-texture); - if (!dstsurf-texture) + assert(zsurf-texture); + if (!zsurf-texture) return; /* check the saved state */ @@ -981,8 +983,8 @@ void util_blitter_flush_depth_stencil(struct blitter_context *blitter, assert(blitter-saved_fb_state.nr_cbufs != ~0); /* bind CSOs */ - pipe-bind_blend_state(pipe, ctx-blend_keep_color); - pipe-bind_depth_stencil_alpha_state(pipe, ctx-dsa_flush_depth_stencil); + pipe-bind_blend_state(pipe, ctx-blend_write_color); + pipe-bind_depth_stencil_alpha_state(pipe, dsa_stage); pipe-bind_rasterizer_state(pipe, ctx-rs_state); pipe-bind_fs_state(pipe, blitter_get_fs_col(ctx, 0)); @@ -990,15 +992,30 @@ void util_blitter_flush_depth_stencil(struct blitter_context *blitter, pipe-bind_vertex_elements_state(pipe, ctx-velem_state); /* set a framebuffer state */ - fb_state.width = dstsurf-width; - fb_state.height = dstsurf-height; - fb_state.nr_cbufs = 0; - fb_state.cbufs[0] = 0; - fb_state.zsbuf = dstsurf; + fb_state.width = zsurf-width; + fb_state.height = zsurf-height; + fb_state.nr_cbufs = 1; + if (cbsurf) { + fb_state.cbufs[0] = cbsurf; + fb_state.nr_cbufs = 1; + } else { + fb_state.cbufs[0] = NULL; + fb_state.nr_cbufs = 0; + } + fb_state.zsbuf = zsurf; pipe-set_framebuffer_state(pipe, fb_state); - blitter_set_dst_dimensions(ctx, dstsurf-width, dstsurf-height); - blitter-draw_rectangle(blitter, 0, 0, dstsurf-width, dstsurf-height, 0, + blitter_set_dst_dimensions(ctx, zsurf-width, zsurf-height); + blitter-draw_rectangle(blitter, 0, 0, zsurf-width, zsurf-height, depth, UTIL_BLITTER_ATTRIB_NONE, NULL); blitter_restore_CSOs(ctx); } + +/* flush a region of a depth stencil surface for r300g */ +void util_blitter_flush_depth_stencil(struct blitter_context *blitter, + struct pipe_surface *dstsurf) +{ + struct blitter_context_priv *ctx = (struct blitter_context_priv*)blitter; + util_blitter_custom_depth_stencil(blitter, dstsurf, NULL, + ctx-dsa_flush_depth_stencil, 0.0f); +} diff --git a/src/gallium/auxiliary/util/u_blitter.h b/src/gallium/auxiliary/util/u_blitter.h index e33d2e2..f9f96f2 100644 --- a/src/gallium/auxiliary/util/u_blitter.h +++ b/src/gallium/auxiliary/util/u_blitter.h @@ -203,6 +203,12 @@ void util_blitter_clear_depth_stencil(struct blitter_context *blitter, void util_blitter_flush_depth_stencil(struct blitter_context *blitter, struct pipe_surface *dstsurf); + +void util_blitter_custom_depth_stencil(struct blitter_context *blitter, + struct pipe_surface *zsurf, + struct pipe_surface *cbsurf, + void *dsa_stage, float depth); + /* The functions below should be used to save currently bound constant state * objects inside a driver. The objects are automatically restored at the end * of the util_blitter_{clear, copy_region, fill_region} functions and then ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org
Mesa (master): r600g: fix warnings since last commit.
Module: Mesa Branch: master Commit: 6547a82df185e1786e2313cfc4eb254f0a59f5aa URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6547a82df185e1786e2313cfc4eb254f0a59f5aa Author: Dave Airlie airl...@redhat.com Date: Thu Sep 23 16:02:54 2010 +1000 r600g: fix warnings since last commit. --- src/gallium/drivers/r600/r600_texture.c |6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/r600/r600_texture.c b/src/gallium/drivers/r600/r600_texture.c index b0d3b28..16468c9 100644 --- a/src/gallium/drivers/r600/r600_texture.c +++ b/src/gallium/drivers/r600/r600_texture.c @@ -144,7 +144,7 @@ static void r600_texture_destroy(struct pipe_screen *screen, struct radeon *radeon = (struct radeon *)screen-winsys; if (rtex-flushed_depth_texture) - pipe_resource_reference(rtex-flushed_depth_texture, NULL); + pipe_resource_reference((struct pipe_resource **)rtex-flushed_depth_texture, NULL); if (resource-bo) { radeon_ws_bo_reference(radeon, resource-bo, NULL); @@ -256,7 +256,7 @@ int r600_texture_depth_flush(struct pipe_context *ctx, resource.bind |= PIPE_BIND_RENDER_TARGET; - rtex-flushed_depth_texture = ctx-screen-resource_create(ctx-screen, resource); + rtex-flushed_depth_texture = (struct r600_resource_texture *)ctx-screen-resource_create(ctx-screen, resource); if (rtex-flushed_depth_texture == NULL) { R600_ERR(failed to create temporary texture to hold untiled copy\n); return -ENOMEM; @@ -348,7 +348,7 @@ void r600_texture_transfer_destroy(struct pipe_context *ctx, if (transfer-usage PIPE_TRANSFER_WRITE) { // TODO } - pipe_resource_reference(rtex-flushed_depth_texture, NULL); + pipe_resource_reference((struct pipe_resource **)rtex-flushed_depth_texture, NULL); } pipe_resource_reference(transfer-resource, NULL); FREE(transfer); ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): egl: fix build since 17eace581d25a626a7d75d9d1205d012cbb14a6e
Module: Mesa Branch: master Commit: ada1d91c15e05b55829d61d04879faeea98474e9 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ada1d91c15e05b55829d61d04879faeea98474e9 Author: Dave Airlie airl...@redhat.com Date: Thu Sep 23 16:12:23 2010 +1000 egl: fix build since 17eace581d25a626a7d75d9d1205d012cbb14a6e looks like mesa st didn't get updated. --- src/mesa/state_tracker/st_manager.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/src/mesa/state_tracker/st_manager.c b/src/mesa/state_tracker/st_manager.c index 450b045..66e32b4 100644 --- a/src/mesa/state_tracker/st_manager.c +++ b/src/mesa/state_tracker/st_manager.c @@ -794,7 +794,7 @@ st_manager_get_egl_image_surface(struct st_context *st, return NULL; memset(stimg, 0, sizeof(stimg)); - if (!smapi-get_egl_image(smapi, st-iface, eglimg, stimg)) + if (!smapi-get_egl_image(smapi, eglimg, stimg)) return NULL; ps = smapi-screen-get_tex_surface(smapi-screen, ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): d3d1x: fix deadlocks on non-recursive mutex
Module: Mesa Branch: master Commit: 17ad9972f4b998dbf1a046780b6bde461d721dd0 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=17ad9972f4b998dbf1a046780b6bde461d721dd0 Author: Luca Barbieri l...@luca-barbieri.com Date: Thu Sep 23 03:35:50 2010 +0200 d3d1x: fix deadlocks on non-recursive mutex --- .../state_trackers/d3d1x/gd3d11/d3d11_context.h| 20 +++- 1 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/gallium/state_trackers/d3d1x/gd3d11/d3d11_context.h b/src/gallium/state_trackers/d3d1x/gd3d11/d3d11_context.h index 032cb0e..7e49c3a 100644 --- a/src/gallium/state_trackers/d3d1x/gd3d11/d3d11_context.h +++ b/src/gallium/state_trackers/d3d1x/gd3d11/d3d11_context.h @@ -901,7 +901,6 @@ struct GalliumD3D10Device : public GalliumD3D10ScreenImplthreadsafe void set_clip() { - SYNCHRONIZED; pipe_clip_state clip; clip.nr = 0; clip.depth_clamp = depth_clamp; @@ -1588,7 +1587,7 @@ changed: } #endif - virtual void STDMETHODCALLTYPE RestoreGalliumStateBlitOnly() + void restore_gallium_state_blit_only() { pipe-bind_blend_state(pipe, blend_state.p ? blend_state.p-object : default_blend); pipe-bind_depth_stencil_alpha_state(pipe, depth_stencil_state.p ? depth_stencil_state.p-object : default_depth_stencil); @@ -1607,6 +1606,12 @@ changed: update_flags |= UPDATE_VERTEX_BUFFERS | (1 (UPDATE_SAMPLERS_SHIFT + D3D11_STAGE_PS)) | (1 (UPDATE_VIEWS_SHIFT + D3D11_STAGE_PS)); } + virtual void STDMETHODCALLTYPE RestoreGalliumStateBlitOnly() + { + SYNCHRONIZED; + restore_gallium_state_blit_only(); + } + virtual void STDMETHODCALLTYPE GenerateMips( __in ID3D11ShaderResourceView *pShaderResourceView) { @@ -1620,13 +1625,13 @@ changed: if(pipe-render_condition) pipe-render_condition(pipe, 0, 0); util_gen_mipmap(gen_mipmap, view-object, 0, 0, view-object-texture-last_level, PIPE_TEX_FILTER_LINEAR); - RestoreGalliumStateBlitOnly(); + restore_gallium_state_blit_only(); } virtual void STDMETHODCALLTYPE RestoreGalliumState() { SYNCHRONIZED; - RestoreGalliumStateBlitOnly(); + restore_gallium_state_blit_only(); set_index_buffer(); set_stencil_ref(); @@ -1707,7 +1712,12 @@ changed: virtual void STDMETHODCALLTYPE ClearState(void) { - SYNCHRONIZED; + /* we don't take a lock here because we would deadlock otherwise +* TODO: this is probably incorrect, because ClearState should likely be atomic. +* However, I can't think of any correct usage that would be affected by this +* being non-atomic, and making this atomic is quite expensive and complicates +* the code +*/ // we qualify all calls so that we avoid virtual dispatch and might get them inlined // TODO: make sure all this gets inlined, which might require more compiler flags ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): d3d1x: bind NULL CSOs before destroying default CSOs on context dtor
Module: Mesa Branch: master Commit: 1b15a3cafdc699c63466059d56f36b295475ee9e URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1b15a3cafdc699c63466059d56f36b295475ee9e Author: Luca Barbieri l...@luca-barbieri.com Date: Thu Sep 23 03:49:17 2010 +0200 d3d1x: bind NULL CSOs before destroying default CSOs on context dtor Otherwise softpipe and llvmpipe assert. --- .../state_trackers/d3d1x/gd3d11/d3d11_context.h| 18 ++ 1 files changed, 18 insertions(+), 0 deletions(-) diff --git a/src/gallium/state_trackers/d3d1x/gd3d11/d3d11_context.h b/src/gallium/state_trackers/d3d1x/gd3d11/d3d11_context.h index 7e49c3a..3c789d3 100644 --- a/src/gallium/state_trackers/d3d1x/gd3d11/d3d11_context.h +++ b/src/gallium/state_trackers/d3d1x/gd3d11/d3d11_context.h @@ -267,14 +267,32 @@ struct GalliumD3D10Device : public GalliumD3D10ScreenImplthreadsafe { util_destroy_gen_mipmap(gen_mipmap); cso_destroy_context(cso_ctx); + + pipe-bind_vertex_elements_state(pipe, 0); pipe-delete_vertex_elements_state(pipe, default_input_layout); + + pipe-bind_rasterizer_state(pipe, 0); pipe-delete_rasterizer_state(pipe, default_rasterizer); + + pipe-bind_depth_stencil_alpha_state(pipe, 0); pipe-delete_depth_stencil_alpha_state(pipe, default_depth_stencil); + + pipe-bind_blend_state(pipe, 0); pipe-delete_blend_state(pipe, default_blend); + + pipe-bind_fragment_sampler_states(pipe, 0, 0); + pipe-bind_vertex_sampler_states(pipe, 0, 0); + if(pipe-bind_geometry_sampler_states) + pipe-bind_geometry_sampler_states(pipe, 0, 0); pipe-delete_sampler_state(pipe, default_sampler); pipe-delete_sampler_state(pipe, ld_sampler); + + pipe-bind_fs_state(pipe, 0); pipe-delete_fs_state(pipe, default_shaders[PIPE_SHADER_FRAGMENT]); + + pipe-bind_vs_state(pipe, 0); pipe-delete_vs_state(pipe, default_shaders[PIPE_SHADER_VERTEX]); + if(owns_pipe) pipe-destroy(pipe); } ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (7.9): glx: Hold on to drawables if we' re just switching to another context
Module: Mesa Branch: 7.9 Commit: cdb3f23d8a259fa0b042656e3c96ebb4d0936d2f URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=cdb3f23d8a259fa0b042656e3c96ebb4d0936d2f Author: Kristian Høgsberg k...@bitplanet.net Date: Tue Sep 21 09:56:05 2010 -0400 glx: Hold on to drawables if we're just switching to another context https://bugs.freedesktop.org/show_bug.cgi?id=30234 --- src/glx/dri2_glx.c |5 - 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c index 8247588..911298b 100644 --- a/src/glx/dri2_glx.c +++ b/src/glx/dri2_glx.c @@ -118,6 +118,8 @@ dri2_destroy_context(struct glx_context *context) struct dri2_context *pcp = (struct dri2_context *) context; struct dri2_screen *psc = (struct dri2_screen *) context-psc; + driReleaseDrawables(pcp-base); + if (context-xid) glx_send_destroy_context(psc-base.dpy, context-xid); @@ -158,7 +160,8 @@ dri2_unbind_context(struct glx_context *context, struct glx_context *new) (*psc-core-unbindContext) (pcp-driContext); - driReleaseDrawables(pcp-base); + if (context == new) + driReleaseDrawables(pcp-base); } static struct glx_context * ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (7.9): egl: fix build since 17eace581d25a626a7d75d9d1205d012cbb14a6e
Module: Mesa Branch: 7.9 Commit: f279480df292c5fa9107bca93a8a9350f20b747d URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f279480df292c5fa9107bca93a8a9350f20b747d Author: Dave Airlie airl...@redhat.com Date: Thu Sep 23 16:12:23 2010 +1000 egl: fix build since 17eace581d25a626a7d75d9d1205d012cbb14a6e looks like mesa st didn't get updated. --- src/mesa/state_tracker/st_manager.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/src/mesa/state_tracker/st_manager.c b/src/mesa/state_tracker/st_manager.c index 450b045..66e32b4 100644 --- a/src/mesa/state_tracker/st_manager.c +++ b/src/mesa/state_tracker/st_manager.c @@ -794,7 +794,7 @@ st_manager_get_egl_image_surface(struct st_context *st, return NULL; memset(stimg, 0, sizeof(stimg)); - if (!smapi-get_egl_image(smapi, st-iface, eglimg, stimg)) + if (!smapi-get_egl_image(smapi, eglimg, stimg)) return NULL; ps = smapi-screen-get_tex_surface(smapi-screen, ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): draw: don't apply flatshading to clipped tris with 3 verts
Module: Mesa Branch: master Commit: 8b597b4ea4290301bd97587db5389f151cb5f25f URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8b597b4ea4290301bd97587db5389f151cb5f25f Author: Keith Whitwell kei...@vmware.com Date: Thu Sep 23 16:11:17 2010 +0100 draw: don't apply flatshading to clipped tris with 3 verts If a triangle was completely culled by clipping, we would still try to fix up its provoking vertex. --- src/gallium/auxiliary/draw/draw_pipe_clip.c | 35 ++- 1 files changed, 18 insertions(+), 17 deletions(-) diff --git a/src/gallium/auxiliary/draw/draw_pipe_clip.c b/src/gallium/auxiliary/draw/draw_pipe_clip.c index 8a3d499..50acc6c 100644 --- a/src/gallium/auxiliary/draw/draw_pipe_clip.c +++ b/src/gallium/auxiliary/draw/draw_pipe_clip.c @@ -321,27 +321,28 @@ do_clip_tri( struct draw_stage *stage, /* If flat-shading, copy provoking vertex color to polygon vertex[0] */ - if (clipper-flat) { - if (stage-draw-rasterizer-flatshade_first) { - if (inlist[0] != header-v[0]) { -assert(tmpnr MAX_CLIPPED_VERTICES + 1); -inlist[0] = dup_vert(stage, inlist[0], tmpnr++); -copy_colors(stage, inlist[0], header-v[0]); + if (n = 3) { + if (clipper-flat) { + if (stage-draw-rasterizer-flatshade_first) { +if (inlist[0] != header-v[0]) { + assert(tmpnr MAX_CLIPPED_VERTICES + 1); + inlist[0] = dup_vert(stage, inlist[0], tmpnr++); + copy_colors(stage, inlist[0], header-v[0]); +} } - } - else { - if (inlist[0] != header-v[2]) { -assert(tmpnr MAX_CLIPPED_VERTICES + 1); -inlist[0] = dup_vert(stage, inlist[0], tmpnr++); -copy_colors(stage, inlist[0], header-v[2]); + else { +if (inlist[0] != header-v[2]) { + assert(tmpnr MAX_CLIPPED_VERTICES + 1); + inlist[0] = dup_vert(stage, inlist[0], tmpnr++); + copy_colors(stage, inlist[0], header-v[2]); +} } } - } - - /* Emit the polygon as triangles to the setup stage: -*/ - if (n = 3) + + /* Emit the polygon as triangles to the setup stage: + */ emit_poly( stage, inlist, n, header ); + } } ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (7.9): draw: don't apply flatshading to clipped tris with 3 verts
Module: Mesa Branch: 7.9 Commit: 6f310f379b31be4776e43447bf38416de56e5abb URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6f310f379b31be4776e43447bf38416de56e5abb Author: Keith Whitwell kei...@vmware.com Date: Thu Sep 23 16:11:17 2010 +0100 draw: don't apply flatshading to clipped tris with 3 verts If a triangle was completely culled by clipping, we would still try to fix up its provoking vertex. --- src/gallium/auxiliary/draw/draw_pipe_clip.c | 35 ++- 1 files changed, 18 insertions(+), 17 deletions(-) diff --git a/src/gallium/auxiliary/draw/draw_pipe_clip.c b/src/gallium/auxiliary/draw/draw_pipe_clip.c index 8a3d499..50acc6c 100644 --- a/src/gallium/auxiliary/draw/draw_pipe_clip.c +++ b/src/gallium/auxiliary/draw/draw_pipe_clip.c @@ -321,27 +321,28 @@ do_clip_tri( struct draw_stage *stage, /* If flat-shading, copy provoking vertex color to polygon vertex[0] */ - if (clipper-flat) { - if (stage-draw-rasterizer-flatshade_first) { - if (inlist[0] != header-v[0]) { -assert(tmpnr MAX_CLIPPED_VERTICES + 1); -inlist[0] = dup_vert(stage, inlist[0], tmpnr++); -copy_colors(stage, inlist[0], header-v[0]); + if (n = 3) { + if (clipper-flat) { + if (stage-draw-rasterizer-flatshade_first) { +if (inlist[0] != header-v[0]) { + assert(tmpnr MAX_CLIPPED_VERTICES + 1); + inlist[0] = dup_vert(stage, inlist[0], tmpnr++); + copy_colors(stage, inlist[0], header-v[0]); +} } - } - else { - if (inlist[0] != header-v[2]) { -assert(tmpnr MAX_CLIPPED_VERTICES + 1); -inlist[0] = dup_vert(stage, inlist[0], tmpnr++); -copy_colors(stage, inlist[0], header-v[2]); + else { +if (inlist[0] != header-v[2]) { + assert(tmpnr MAX_CLIPPED_VERTICES + 1); + inlist[0] = dup_vert(stage, inlist[0], tmpnr++); + copy_colors(stage, inlist[0], header-v[2]); +} } } - } - - /* Emit the polygon as triangles to the setup stage: -*/ - if (n = 3) + + /* Emit the polygon as triangles to the setup stage: + */ emit_poly( stage, inlist, n, header ); + } } ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): draw: Prevent clipped vertices overflow.
Module: Mesa Branch: master Commit: 440129521c36bc2c2e59c462a94394b2f42a847e URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=440129521c36bc2c2e59c462a94394b2f42a847e Author: José Fonseca jfons...@vmware.com Date: Thu Aug 26 15:30:51 2010 +0100 draw: Prevent clipped vertices overflow. Some pathological triangles cause a theoritically impossible number of clipped vertices. The clipper will still assert, but at least release builds will not crash, while this problem is further investigated. --- src/gallium/auxiliary/draw/draw_pipe_clip.c | 14 +- 1 files changed, 13 insertions(+), 1 deletions(-) diff --git a/src/gallium/auxiliary/draw/draw_pipe_clip.c b/src/gallium/auxiliary/draw/draw_pipe_clip.c index 50acc6c..a10d8e9 100644 --- a/src/gallium/auxiliary/draw/draw_pipe_clip.c +++ b/src/gallium/auxiliary/draw/draw_pipe_clip.c @@ -263,6 +263,8 @@ do_clip_tri( struct draw_stage *stage, clipmask = ~(1plane_idx); assert(n MAX_CLIPPED_VERTICES); + if (n = MAX_CLIPPED_VERTICES) + return; inlist[n] = inlist[0]; /* prevent rotation of vertices */ for (i = 1; i = n; i++) { @@ -272,16 +274,22 @@ do_clip_tri( struct draw_stage *stage, if (!IS_NEGATIVE(dp_prev)) { assert(outcount MAX_CLIPPED_VERTICES); +if (outcount = MAX_CLIPPED_VERTICES) + return; outlist[outcount++] = vert_prev; } if (DIFFERENT_SIGNS(dp, dp_prev)) { struct vertex_header *new_vert; -assert(tmpnr MAX_CLIPPED_VERTICES+1); +assert(tmpnr MAX_CLIPPED_VERTICES + 1); +if (tmpnr = MAX_CLIPPED_VERTICES + 1) + return; new_vert = clipper-stage.tmp[tmpnr++]; assert(outcount MAX_CLIPPED_VERTICES); +if (outcount = MAX_CLIPPED_VERTICES) + return; outlist[outcount++] = new_vert; if (IS_NEGATIVE(dp)) { @@ -326,6 +334,8 @@ do_clip_tri( struct draw_stage *stage, if (stage-draw-rasterizer-flatshade_first) { if (inlist[0] != header-v[0]) { assert(tmpnr MAX_CLIPPED_VERTICES + 1); + if (tmpnr = MAX_CLIPPED_VERTICES + 1) + return; inlist[0] = dup_vert(stage, inlist[0], tmpnr++); copy_colors(stage, inlist[0], header-v[0]); } @@ -333,6 +343,8 @@ do_clip_tri( struct draw_stage *stage, else { if (inlist[0] != header-v[2]) { assert(tmpnr MAX_CLIPPED_VERTICES + 1); + if (tmpnr = MAX_CLIPPED_VERTICES + 1) + return; inlist[0] = dup_vert(stage, inlist[0], tmpnr++); copy_colors(stage, inlist[0], header-v[2]); } ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (7.9): draw: Prevent clipped vertices overflow.
Module: Mesa Branch: 7.9 Commit: 7f95c59509a6e28bde2c8ec7c880505a63c9ee56 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7f95c59509a6e28bde2c8ec7c880505a63c9ee56 Author: José Fonseca jfons...@vmware.com Date: Thu Aug 26 15:30:51 2010 +0100 draw: Prevent clipped vertices overflow. Some pathological triangles cause a theoritically impossible number of clipped vertices. The clipper will still assert, but at least release builds will not crash, while this problem is further investigated. --- src/gallium/auxiliary/draw/draw_pipe_clip.c | 14 +- 1 files changed, 13 insertions(+), 1 deletions(-) diff --git a/src/gallium/auxiliary/draw/draw_pipe_clip.c b/src/gallium/auxiliary/draw/draw_pipe_clip.c index 50acc6c..a10d8e9 100644 --- a/src/gallium/auxiliary/draw/draw_pipe_clip.c +++ b/src/gallium/auxiliary/draw/draw_pipe_clip.c @@ -263,6 +263,8 @@ do_clip_tri( struct draw_stage *stage, clipmask = ~(1plane_idx); assert(n MAX_CLIPPED_VERTICES); + if (n = MAX_CLIPPED_VERTICES) + return; inlist[n] = inlist[0]; /* prevent rotation of vertices */ for (i = 1; i = n; i++) { @@ -272,16 +274,22 @@ do_clip_tri( struct draw_stage *stage, if (!IS_NEGATIVE(dp_prev)) { assert(outcount MAX_CLIPPED_VERTICES); +if (outcount = MAX_CLIPPED_VERTICES) + return; outlist[outcount++] = vert_prev; } if (DIFFERENT_SIGNS(dp, dp_prev)) { struct vertex_header *new_vert; -assert(tmpnr MAX_CLIPPED_VERTICES+1); +assert(tmpnr MAX_CLIPPED_VERTICES + 1); +if (tmpnr = MAX_CLIPPED_VERTICES + 1) + return; new_vert = clipper-stage.tmp[tmpnr++]; assert(outcount MAX_CLIPPED_VERTICES); +if (outcount = MAX_CLIPPED_VERTICES) + return; outlist[outcount++] = new_vert; if (IS_NEGATIVE(dp)) { @@ -326,6 +334,8 @@ do_clip_tri( struct draw_stage *stage, if (stage-draw-rasterizer-flatshade_first) { if (inlist[0] != header-v[0]) { assert(tmpnr MAX_CLIPPED_VERTICES + 1); + if (tmpnr = MAX_CLIPPED_VERTICES + 1) + return; inlist[0] = dup_vert(stage, inlist[0], tmpnr++); copy_colors(stage, inlist[0], header-v[0]); } @@ -333,6 +343,8 @@ do_clip_tri( struct draw_stage *stage, else { if (inlist[0] != header-v[2]) { assert(tmpnr MAX_CLIPPED_VERTICES + 1); + if (tmpnr = MAX_CLIPPED_VERTICES + 1) + return; inlist[0] = dup_vert(stage, inlist[0], tmpnr++); copy_colors(stage, inlist[0], header-v[2]); } ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): d3d1x: initialize the mutex
Module: Mesa Branch: master Commit: 22762012d1ab4060d8274c1007067c80bb8e806c URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=22762012d1ab4060d8274c1007067c80bb8e806c Author: Luca Barbieri l...@luca-barbieri.com Date: Thu Sep 23 11:58:09 2010 +0200 d3d1x: initialize the mutex --- .../d3d1x/d3d1xstutil/include/d3d1xstutil.h|5 + 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/src/gallium/state_trackers/d3d1x/d3d1xstutil/include/d3d1xstutil.h b/src/gallium/state_trackers/d3d1x/d3d1xstutil/include/d3d1xstutil.h index 7627720..974518a 100644 --- a/src/gallium/state_trackers/d3d1x/d3d1xstutil/include/d3d1xstutil.h +++ b/src/gallium/state_trackers/d3d1x/d3d1xstutil/include/d3d1xstutil.h @@ -675,6 +675,11 @@ struct maybe_mutex_ttrue { pipe_mutex mutex; + maybe_mutex_t() + { + pipe_mutex_init(mutex); + } + void lock() { pipe_mutex_lock(mutex); ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): d3d1x: autogenerate shader enums and text from def files
Module: Mesa Branch: master Commit: 75c29fe1c853d5d5e7be6af3187a4d4e36832f5b URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=75c29fe1c853d5d5e7be6af3187a4d4e36832f5b Author: Luca Barbieri l...@luca-barbieri.com Date: Thu Sep 23 13:17:45 2010 +0200 d3d1x: autogenerate shader enums and text from def files This avoids the duplication in tpf.h and tpf_text.cpp --- .../state_trackers/d3d1x/d3d1xshader/Makefile |6 + .../d3d1x/d3d1xshader/defs/files.txt | 41 ++ .../d3d1x/d3d1xshader/defs/interpolations.txt |8 + .../d3d1x/d3d1xshader/defs/opcodes.txt | 207 ++ .../d3d1x/d3d1xshader/defs/operand_compnums.txt|5 + .../d3d1x/d3d1xshader/defs/operand_index_reprs.txt |5 + .../d3d1x/d3d1xshader/defs/operand_modes.txt |4 + .../d3d1x/d3d1xshader/defs/shortfiles.txt | 41 ++ .../state_trackers/d3d1x/d3d1xshader/defs/svs.txt | 23 ++ .../d3d1x/d3d1xshader/defs/targets.txt | 13 + .../defs/token_instruction_extended_types.txt |4 + .../defs/token_operand_extended_types.txt |2 + .../state_trackers/d3d1x/d3d1xshader/gen-header.sh | 13 + .../state_trackers/d3d1x/d3d1xshader/gen-text.sh | 11 + .../state_trackers/d3d1x/d3d1xshader/include/tpf.h | 404 +--- .../d3d1x/d3d1xshader/src/tpf_parse.cpp| 10 +- .../d3d1x/d3d1xshader/src/tpf_text.cpp | 385 --- 17 files changed, 390 insertions(+), 792 deletions(-) diff --git a/src/gallium/state_trackers/d3d1x/d3d1xshader/Makefile b/src/gallium/state_trackers/d3d1x/d3d1xshader/Makefile index 8c8e2fb..866762e 100644 --- a/src/gallium/state_trackers/d3d1x/d3d1xshader/Makefile +++ b/src/gallium/state_trackers/d3d1x/d3d1xshader/Makefile @@ -5,3 +5,9 @@ PROGS=tools/fxdis LIBS=libd3d1xshader.a include ../Makefile.inc + +include/tpf_defs.h: $(wildcard defs/*.txt) + ./gen-header.sh $^ $@ + +src/tpf_text.cpp: $(wildcard defs/*.txt) + ./gen-text.sh $^ $@ diff --git a/src/gallium/state_trackers/d3d1x/d3d1xshader/defs/files.txt b/src/gallium/state_trackers/d3d1x/d3d1xshader/defs/files.txt new file mode 100644 index 000..c44a46b --- /dev/null +++ b/src/gallium/state_trackers/d3d1x/d3d1xshader/defs/files.txt @@ -0,0 +1,41 @@ +temp +input +output +indexable_temp +immediate32 +immediate64 +sampler +resource +constant_buffer +immediate_constant_buffer +label +input_primitiveid +output_depth +null +rasterizer +output_coverage_mask +stream +function_body +function_table +interface +function_input +function_output +output_control_point_id +input_fork_instance_id +input_join_instance_id +input_control_point +output_control_point +input_patch_constant +input_domain_point +this_pointer +unordered_access_view +thread_group_shared_memory +input_thread_id +input_thread_group_id +input_thread_id_in_group +input_coverage_mask +input_thread_id_in_group_flattened +input_gs_instance_id +output_depth_greater_equal +output_depth_less_equal +cycle_counter diff --git a/src/gallium/state_trackers/d3d1x/d3d1xshader/defs/interpolations.txt b/src/gallium/state_trackers/d3d1x/d3d1xshader/defs/interpolations.txt new file mode 100644 index 000..4e52eec --- /dev/null +++ b/src/gallium/state_trackers/d3d1x/d3d1xshader/defs/interpolations.txt @@ -0,0 +1,8 @@ +undefined +constant +linear +linear centroid +linear noperspective +linear noperspective centroid +linear sample +linear noperspective sample diff --git a/src/gallium/state_trackers/d3d1x/d3d1xshader/defs/opcodes.txt b/src/gallium/state_trackers/d3d1x/d3d1xshader/defs/opcodes.txt new file mode 100644 index 000..46ff28d --- /dev/null +++ b/src/gallium/state_trackers/d3d1x/d3d1xshader/defs/opcodes.txt @@ -0,0 +1,207 @@ +add +and +break +breakc +call +callc +case +continue +continuec +cut +default +deriv_rtx +deriv_rty +discard +div +dp2 +dp3 +dp4 +else +emit +emitthencut +endif +endloop +endswitch +eq +exp +frc +ftoi +ftou +ge +iadd +if +ieq +ige +ilt +imad +imax +imin +imul +ine +ineg +ishl +ishr +itof +label +ld +ld_ms +log +loop +lt +mad +min +max +customdata +mov +movc +mul +ne +nop +not +or +resinfo +ret +retc +round_ne +round_ni +round_pi +round_z +rsq +sample +sample_c +sample_c_lz +sample_l +sample_d +sample_b +sqrt +switch +sincos +udiv +ult +uge +umul +umad +umax +umin +ushr +utof +xor +dcl_resource +dcl_constant_buffer +dcl_sampler +dcl_index_range +dcl_gs_output_primitive_topology +dcl_gs_input_primitive +dcl_max_output_vertex_count +dcl_input +dcl_input_sgv +dcl_input_siv +dcl_input_ps +dcl_input_ps_sgv +dcl_input_ps_siv +dcl_output +dcl_output_sgv +dcl_output_siv +dcl_temps +dcl_indexable_temp +dcl_global_flags +d3d10_count +lod +gather4 +sample_pos +sample_info +d3d10_1_count +hs_decls +hs_control_point_phase +hs_fork_phase +hs_join_phase +emit_stream +cut_stream +emitthencut_stream +interface_call +bufinfo +deriv_rtx_coarse +deriv_rtx_fine +deriv_rty_coarse +deriv_rty_fine +gather4_c +gather4_po +gather4_po_c +rcp
Mesa (master): d3d1x: s/tpf/sm4/g
Module: Mesa Branch: master Commit: e5ae4588d150a179974a812887f3b6445d8e2f34 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e5ae4588d150a179974a812887f3b6445d8e2f34 Author: Luca Barbieri l...@luca-barbieri.com Date: Thu Sep 23 13:31:30 2010 +0200 d3d1x: s/tpf/sm4/g --- .../state_trackers/d3d1x/d3d1xshader/Makefile |4 +- .../state_trackers/d3d1x/d3d1xshader/gen-header.sh |6 +- .../state_trackers/d3d1x/d3d1xshader/gen-text.sh |2 +- .../d3d1x/d3d1xshader/include/{tpf.h = sm4.h} | 132 ++-- .../src/{tpf_analyze.cpp = sm4_analyze.cpp} | 54 +++--- .../d3d1xshader/src/{tpf_dump.cpp = sm4_dump.cpp} | 86 .../src/{tpf_parse.cpp = sm4_parse.cpp} | 192 +- .../d3d1x/d3d1xshader/tools/fxdis.cpp | 14 +- .../state_trackers/d3d1x/gd3d11/d3d11_screen.h | 14 +- .../state_trackers/d3d1x/gd3d1x/d3d1x_private.h|4 +- .../gd3d1x/{tpf_to_tgsi.cpp = sm4_to_tgsi.cpp}| 216 ++-- .../d3d1x/gd3d1x/{tpf_to_tgsi.h = sm4_to_tgsi.h} | 10 +- .../d3d1x/gd3d1x/tools/dxbc2tgsi.cpp | 16 +- 13 files changed, 376 insertions(+), 374 deletions(-) Diff: http://cgit.freedesktop.org/mesa/mesa/diff/?id=e5ae4588d150a179974a812887f3b6445d8e2f34 ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): d3d1x: normalize whitespace
Module: Mesa Branch: master Commit: 6c598c78bd17642d731cf57b8369cc794f64ba2f URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6c598c78bd17642d731cf57b8369cc794f64ba2f Author: Luca Barbieri l...@luca-barbieri.com Date: Thu Sep 23 13:44:22 2010 +0200 d3d1x: normalize whitespace --- .../d3d1x/d3d1xshader/include/dxbc.h |4 +- .../state_trackers/d3d1x/d3d1xshader/include/sm4.h |2 +- .../d3d1x/d3d1xshader/src/sm4_analyze.cpp |4 +- .../d3d1x/d3d1xstutil/include/d3d1xstutil.h| 260 .../state_trackers/d3d1x/d3dapi/d3d10_1.idl| 18 +- .../state_trackers/d3d1x/d3dapi/d3d10misc.h| 18 +- .../state_trackers/d3d1x/d3dapi/d3d10shader.idl| 24 +- src/gallium/state_trackers/d3d1x/d3dapi/d3d11.idl | 628 ++-- .../state_trackers/d3d1x/d3dapi/d3d11shader.idl| 36 +- .../state_trackers/d3d1x/d3dapi/d3dcommon.idl | 28 +- src/gallium/state_trackers/d3d1x/d3dapi/dxgi.idl | 520 .../state_trackers/d3d1x/d3dapi/dxgitype.idl | 68 ++-- .../state_trackers/d3d1x/docs/coding_style.txt |1 - .../state_trackers/d3d1x/dxgi/src/dxgi_loader.cpp | 238 .../state_trackers/d3d1x/dxgi/src/dxgi_native.cpp | 356 ++-- .../state_trackers/d3d1x/dxgid3d10/dxgid3d10.cpp | 24 +- .../state_trackers/d3d1x/dxgid3d11/dxgid3d11.cpp | 22 +- src/gallium/state_trackers/d3d1x/gd3d11/d3d11.cpp | 26 +- .../state_trackers/d3d1x/gd3d11/d3d11_context.h| 352 ++-- .../state_trackers/d3d1x/gd3d11/d3d11_misc.h | 38 +- .../state_trackers/d3d1x/gd3d11/d3d11_objects.h| 206 .../state_trackers/d3d1x/gd3d11/d3d11_screen.h | 214 .../state_trackers/d3d1x/gd3d1x/d3d_enums.cpp |2 +- .../state_trackers/d3d1x/gd3d1x/sm4_to_tgsi.cpp|2 +- .../state_trackers/d3d1x/gd3dapi/galliumcom.idl|2 +- .../state_trackers/d3d1x/gd3dapi/galliumdxgi.idl |4 +- .../d3d1x/progs/d3d10app/d3d10x11main.cpp |4 +- .../d3d1x/progs/d3d10tri/d3d10tri.cpp | 28 +- .../state_trackers/d3d1x/progs/d3d11app/d3d11u.h |2 +- .../d3d1x/progs/d3d11app/d3d11x11main.cpp |2 +- .../d3d1x/progs/d3d11gears/d3d11gears.cpp |8 +- .../d3d1x/progs/d3d11tri/d3d11tri.cpp | 28 +- 32 files changed, 1584 insertions(+), 1585 deletions(-) Diff: http://cgit.freedesktop.org/mesa/mesa/diff/?id=6c598c78bd17642d731cf57b8369cc794f64ba2f ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): d3d1x: remove specstrings
Module: Mesa Branch: master Commit: 8224256946619fb25278718bbf4703e3b9d60c93 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8224256946619fb25278718bbf4703e3b9d60c93 Author: Luca Barbieri l...@luca-barbieri.com Date: Thu Sep 23 13:52:34 2010 +0200 d3d1x: remove specstrings --- .../state_trackers/d3d1x/d3d1xshader/include/sm4.h |2 +- .../d3d1x/d3d1xstutil/include/d3d1xstutil.h| 61 ++-- .../state_trackers/d3d1x/d3dapi/specstrings.h | 25 -- .../state_trackers/d3d1x/dxgi/src/dxgi_native.cpp | 84 +++--- .../state_trackers/d3d1x/dxgid3d10/dxgid3d10.cpp | 44 ++-- .../state_trackers/d3d1x/dxgid3d11/dxgid3d11.cpp | 34 +- src/gallium/state_trackers/d3d1x/gd3d11/d3d11.cpp | 26 +- .../state_trackers/d3d1x/gd3d11/d3d11_context.h| 348 ++-- .../state_trackers/d3d1x/gd3d11/d3d11_misc.h | 32 +- .../state_trackers/d3d1x/gd3d11/d3d11_objects.h| 80 +++--- .../state_trackers/d3d1x/gd3d11/d3d11_screen.h | 188 ++-- 11 files changed, 449 insertions(+), 475 deletions(-) Diff: http://cgit.freedesktop.org/mesa/mesa/diff/?id=8224256946619fb25278718bbf4703e3b9d60c93 ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): d3d1x: minifix
Module: Mesa Branch: master Commit: 6b485d85188f7a0499b921fbce4f05f1f5f4882b URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6b485d85188f7a0499b921fbce4f05f1f5f4882b Author: Luca Barbieri l...@luca-barbieri.com Date: Thu Sep 23 13:55:36 2010 +0200 d3d1x: minifix --- .../state_trackers/d3d1x/d3dapi/d3d10_1.idl|2 +- src/gallium/state_trackers/d3d1x/d3dapi/d3d11.idl |2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gallium/state_trackers/d3d1x/d3dapi/d3d10_1.idl b/src/gallium/state_trackers/d3d1x/d3dapi/d3d10_1.idl index 94da622..7efcae5 100644 --- a/src/gallium/state_trackers/d3d1x/d3dapi/d3d10_1.idl +++ b/src/gallium/state_trackers/d3d1x/d3dapi/d3d10_1.idl @@ -171,7 +171,7 @@ typedef HRESULT (* PFN_D3D10_CREATE_DEVICE_AND_SWAP_CHAIN1)( D3D10_DRIVER_TYPE, HMODULE, UINT, - D3D10_FEATURE_LEVEL1 HardwareLevels, + D3D10_FEATURE_LEVEL1, UINT, [in, optional] DXGI_SWAP_CHAIN_DESC*, [out,optional] IDXGISwapChain**, diff --git a/src/gallium/state_trackers/d3d1x/d3dapi/d3d11.idl b/src/gallium/state_trackers/d3d1x/d3dapi/d3d11.idl index d916c20..e23c2f8 100644 --- a/src/gallium/state_trackers/d3d1x/d3dapi/d3d11.idl +++ b/src/gallium/state_trackers/d3d1x/d3dapi/d3d11.idl @@ -2467,7 +2467,7 @@ typedef HRESULT (* PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN)( HMODULE, UINT, [in,optional] const D3D_FEATURE_LEVEL*, - UINT FeatureLevels, + UINT, UINT, [in, optional] const DXGI_SWAP_CHAIN_DESC*, [out,optional] IDXGISwapChain**, ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): d3d1x: rename context params
Module: Mesa Branch: master Commit: 3e0f57b6401e7ddd0a5dc89b5b7fdd6c8d85818d URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3e0f57b6401e7ddd0a5dc89b5b7fdd6c8d85818d Author: Luca Barbieri l...@luca-barbieri.com Date: Thu Sep 23 14:22:10 2010 +0200 d3d1x: rename context params --- .../state_trackers/d3d1x/gd3d11/d3d11_context.h| 774 ++-- 1 files changed, 387 insertions(+), 387 deletions(-) diff --git a/src/gallium/state_trackers/d3d1x/gd3d11/d3d11_context.h b/src/gallium/state_trackers/d3d1x/gd3d11/d3d11_context.h index c2b3bf4..d7c1c92 100644 --- a/src/gallium/state_trackers/d3d1x/gd3d11/d3d11_context.h +++ b/src/gallium/state_trackers/d3d1x/gd3d11/d3d11_context.h @@ -304,10 +304,10 @@ struct GalliumD3D10Device : public GalliumD3D10ScreenImplthreadsafe #if API = 11 #define SET_SHADER_EXTRA_ARGS , \ ID3D11ClassInstance *const *ppClassInstances, \ - unsigned NumClassInstances + unsigned count #define GET_SHADER_EXTRA_ARGS , \ ID3D11ClassInstance **ppClassInstances, \ - unsigned *pNumClassInstances + unsigned *out_count #else #define SET_SHADER_EXTRA_ARGS #define GET_SHADER_EXTRA_ARGS @@ -410,55 +410,55 @@ struct GalliumD3D10Device : public GalliumD3D10ScreenImplthreadsafe *ppShader = (ID3D11##Stage##Shader*)shaders[D3D11_STAGE_##XS].ref(); \ } \ virtual void STDMETHODCALLTYPE XS##SetConstantBuffers(\ - unsigned StartSlot, \ - unsigned NumBuffers, \ - ID3D11Buffer *const *ppConstantBuffers) \ + unsigned start, \ + unsigned count, \ + ID3D11Buffer *const* constant_buffers) \ { \ SYNCHRONIZED; \ - xs_set_constant_buffersD3D11_STAGE_##XS(StartSlot, NumBuffers, (GalliumD3D11Buffer *const *)ppConstantBuffers); \ + xs_set_constant_buffersD3D11_STAGE_##XS(start, count, (GalliumD3D11Buffer *const *)constant_buffers); \ } \ virtual void STDMETHODCALLTYPE XS##GetConstantBuffers(\ - unsigned StartSlot, \ - unsigned NumBuffers, \ - ID3D11Buffer **ppConstantBuffers) \ + unsigned start, \ + unsigned count, \ + ID3D11Buffer **out_constant_buffers) \ { \ SYNCHRONIZED; \ - for(unsigned i = 0; i NumBuffers; ++i) \ - ppConstantBuffers[i] = constant_buffers[D3D11_STAGE_##XS][StartSlot + i].ref(); \ + for(unsigned i = 0; i count; ++i) \ + out_constant_buffers[i] = constant_buffers[D3D11_STAGE_##XS][start + i].ref(); \ } \ virtual void STDMETHODCALLTYPE XS##SetShaderResources(\ - unsigned StartSlot, \ - unsigned NumViews, \ - ID3D11ShaderResourceView *const *ppShaderResourceViews) \ + unsigned start, \ + unsigned count, \ + ID3D11ShaderResourceView *const *new_shader_resource_views) \ { \ SYNCHRONIZED; \ - xs_set_shader_resourcesD3D11_STAGE_##XS(StartSlot, NumViews, (GalliumD3D11ShaderResourceView *const *)ppShaderResourceViews); \ + xs_set_shader_resourcesD3D11_STAGE_##XS(start, count, (GalliumD3D11ShaderResourceView *const *)new_shader_resource_views); \ } \ virtual void STDMETHODCALLTYPE XS##GetShaderResources(\ - unsigned StartSlot, \ - unsigned NumViews, \ - ID3D11ShaderResourceView **ppShaderResourceViews) \ + unsigned start, \ + unsigned count, \ + ID3D11ShaderResourceView **out_shader_resource_views) \ { \ SYNCHRONIZED; \ - for(unsigned i = 0; i NumViews; ++i) \ - ppShaderResourceViews[i] = shader_resource_views[D3D11_STAGE_##XS][StartSlot + i].ref(); \ + for(unsigned i = 0; i count; ++i) \ + out_shader_resource_views[i] = shader_resource_views[D3D11_STAGE_##XS][start + i].ref(); \ } \ virtual void STDMETHODCALLTYPE XS##SetSamplers(\ - unsigned StartSlot, \ - unsigned NumSamplers, \ - ID3D11SamplerState *const *ppSamplers) \ + unsigned start, \ + unsigned count, \ + ID3D11SamplerState *const *new_samplers) \ { \ SYNCHRONIZED; \ - xs_set_samplersD3D11_STAGE_##XS(StartSlot, NumSamplers, (GalliumD3D11SamplerState *const *)ppSamplers); \ + xs_set_samplersD3D11_STAGE_##XS(start, count, (GalliumD3D11SamplerState *const *)new_samplers); \ } \ virtual void STDMETHODCALLTYPE XS##GetSamplers( \ - unsigned StartSlot, \ - unsigned NumSamplers, \ - ID3D11SamplerState **ppSamplers) \ +
Mesa (master): d3d11: rename screen params
Module: Mesa Branch: master Commit: 4f700d23fd5d7277f4379454c0d85ff960e73810 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4f700d23fd5d7277f4379454c0d85ff960e73810 Author: Luca Barbieri l...@luca-barbieri.com Date: Thu Sep 23 15:02:59 2010 +0200 d3d11: rename screen params --- .../state_trackers/d3d1x/gd3d11/d3d11_screen.h | 654 ++-- 1 files changed, 321 insertions(+), 333 deletions(-) Diff: http://cgit.freedesktop.org/mesa/mesa/diff/?id=4f700d23fd5d7277f4379454c0d85ff960e73810 ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): d3d1x: rename params in misc and objects
Module: Mesa Branch: master Commit: 9cd0e624b460bc361287f7d39bfe9aa61d90a457 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9cd0e624b460bc361287f7d39bfe9aa61d90a457 Author: Luca Barbieri l...@luca-barbieri.com Date: Thu Sep 23 15:22:54 2010 +0200 d3d1x: rename params in misc and objects --- .../state_trackers/d3d1x/gd3d11/d3d11_misc.h | 50 +++--- .../state_trackers/d3d1x/gd3d11/d3d11_objects.h| 182 ++-- 2 files changed, 117 insertions(+), 115 deletions(-) diff --git a/src/gallium/state_trackers/d3d1x/gd3d11/d3d11_misc.h b/src/gallium/state_trackers/d3d1x/gd3d11/d3d11_misc.h index 9ad293b..357f51b 100644 --- a/src/gallium/state_trackers/d3d1x/gd3d11/d3d11_misc.h +++ b/src/gallium/state_trackers/d3d1x/gd3d11/d3d11_misc.h @@ -1,37 +1,37 @@ #if API 11 extern C HRESULT STDMETHODCALLTYPE D3D10CreateBlob( - SIZE_T NumBytes, - LPD3D10BLOB *ppBuffer + SIZE_T num_bytes, + LPD3D10BLOB *out_buffer ); HRESULT STDMETHODCALLTYPE D3D10CreateBlob( - SIZE_T NumBytes, - LPD3D10BLOB *ppBuffer + SIZE_T num_bytes, + LPD3D10BLOB *out_buffer ) { - void* data = malloc(NumBytes); + void* data = malloc(num_bytes); if(!data) return E_OUTOFMEMORY; - *ppBuffer = new GalliumD3DBlob(data, NumBytes); + *out_buffer = new GalliumD3DBlob(data, num_bytes); return S_OK; } LPCSTR STDMETHODCALLTYPE D3D10GetPixelShaderProfile( - ID3D10Device *pDevice + ID3D10Device *device ) { return ps_4_0; } LPCSTR STDMETHODCALLTYPE D3D10GetVertexShaderProfile( - ID3D10Device *pDevice + ID3D10Device *device ) { return vs_4_0; } LPCSTR STDMETHODCALLTYPE D3D10GetGeometryShaderProfile( - ID3D10Device *pDevice + ID3D10Device *device ) { return gs_4_0; @@ -47,46 +47,46 @@ static HRESULT dxbc_assemble_as_blob(struct dxbc_chunk_header** chunks, unsigned } HRESULT D3D10GetInputSignatureBlob( - const void *pShaderBytecode, - SIZE_T BytecodeLength, - ID3D10Blob **ppSignatureBlob + const void *shader_bytecode, + SIZE_T bytecode_length, + ID3D10Blob **signature_blob ) { - dxbc_chunk_signature* sig = dxbc_find_signature(pShaderBytecode, BytecodeLength, false); + dxbc_chunk_signature* sig = dxbc_find_signature(shader_bytecode, bytecode_length, false); if(!sig) return E_FAIL; - return dxbc_assemble_as_blob((dxbc_chunk_header**)sig, 1, ppSignatureBlob); + return dxbc_assemble_as_blob((dxbc_chunk_header**)sig, 1, signature_blob); } HRESULT D3D10GetOutputSignatureBlob( - const void *pShaderBytecode, - SIZE_T BytecodeLength, - ID3D10Blob **ppSignatureBlob + const void *shader_bytecode, + SIZE_T bytecode_length, + ID3D10Blob **signature_blob ) { - dxbc_chunk_signature* sig = dxbc_find_signature(pShaderBytecode, BytecodeLength, true); + dxbc_chunk_signature* sig = dxbc_find_signature(shader_bytecode, bytecode_length, true); if(!sig) return E_FAIL; - return dxbc_assemble_as_blob((dxbc_chunk_header**)sig, 1, ppSignatureBlob); + return dxbc_assemble_as_blob((dxbc_chunk_header**)sig, 1, signature_blob); } HRESULT D3D10GetInputAndOutputSignatureBlob( - const void *pShaderBytecode, - SIZE_T BytecodeLength, - ID3D10Blob **ppSignatureBlob + const void *shader_bytecode, + SIZE_T bytecode_length, + ID3D10Blob **signature_blob ) { dxbc_chunk_signature* sigs[2]; - sigs[0] = dxbc_find_signature(pShaderBytecode, BytecodeLength, false); + sigs[0] = dxbc_find_signature(shader_bytecode, bytecode_length, false); if(!sigs[0]) return E_FAIL; - sigs[1] = dxbc_find_signature(pShaderBytecode, BytecodeLength, true); + sigs[1] = dxbc_find_signature(shader_bytecode, bytecode_length, true); if(!sigs[1]) return E_FAIL; - return dxbc_assemble_as_blob((dxbc_chunk_header**)sigs, 2, ppSignatureBlob); + return dxbc_assemble_as_blob((dxbc_chunk_header**)sigs, 2, signature_blob); } #endif diff --git a/src/gallium/state_trackers/d3d1x/gd3d11/d3d11_objects.h b/src/gallium/state_trackers/d3d1x/gd3d11/d3d11_objects.h index 1a55949..836603e 100644 --- a/src/gallium/state_trackers/d3d1x/gd3d11/d3d11_objects.h +++ b/src/gallium/state_trackers/d3d1x/gd3d11/d3d11_objects.h @@ -71,11 +71,11 @@ struct GalliumD3D11DeviceChild : public GalliumPrivateDataComObjectBase, dual_r } virtual void STDMETHODCALLTYPE GetDevice( - ID3D11Device **ppDevice + ID3D11Device **out_device ) { device-AddRef(); - *ppDevice = device; + *out_device = device; } }; @@ -137,9 +137,9 @@ struct GalliumD3D11DescribedObject : public GalliumD3D11ObjectBase, Object
Mesa (master): d3d1x: rename parameters in dxgi
Module: Mesa Branch: master Commit: 0525384c11a6bc95f9fc8f621ea22e13355c2ac8 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0525384c11a6bc95f9fc8f621ea22e13355c2ac8 Author: Luca Barbieri l...@luca-barbieri.com Date: Thu Sep 23 15:38:33 2010 +0200 d3d1x: rename parameters in dxgi --- .../state_trackers/d3d1x/dxgi/src/dxgi_native.cpp | 252 ++-- .../state_trackers/d3d1x/dxgid3d10/dxgid3d10.cpp | 98 .../state_trackers/d3d1x/dxgid3d11/dxgid3d11.cpp | 88 3 files changed, 219 insertions(+), 219 deletions(-) diff --git a/src/gallium/state_trackers/d3d1x/dxgi/src/dxgi_native.cpp b/src/gallium/state_trackers/d3d1x/dxgi/src/dxgi_native.cpp index 98ea972..89be7f5 100644 --- a/src/gallium/state_trackers/d3d1x/dxgi/src/dxgi_native.cpp +++ b/src/gallium/state_trackers/d3d1x/dxgi/src/dxgi_native.cpp @@ -40,9 +40,9 @@ struct GalliumDXGIAdapter; struct GalliumDXGISwapChain; struct GalliumDXGIFactory; -static HRESULT GalliumDXGISwapChainCreate(GalliumDXGIFactory* factory, IUnknown* device, const DXGI_SWAP_CHAIN_DESC desc, IDXGISwapChain** ppSwapChain); -static HRESULT GalliumDXGIAdapterCreate(GalliumDXGIFactory* adapter, const struct native_platform* platform, void* dpy, IDXGIAdapter1** ppAdapter); -static HRESULT GalliumDXGIOutputCreate(GalliumDXGIAdapter* adapter, const std::string name, const struct native_connector* connector, IDXGIOutput** ppOutput); +static HRESULT GalliumDXGISwapChainCreate(GalliumDXGIFactory* factory, IUnknown* device, const DXGI_SWAP_CHAIN_DESC desc, IDXGISwapChain** out_swap_chain); +static HRESULT GalliumDXGIAdapterCreate(GalliumDXGIFactory* adapter, const struct native_platform* platform, void* dpy, IDXGIAdapter1** out_adapter); +static HRESULT GalliumDXGIOutputCreate(GalliumDXGIAdapter* adapter, const std::string name, const struct native_connector* connector, IDXGIOutput** out_output); static void GalliumDXGISwapChainRevalidate(IDXGISwapChain* swap_chain); templatetypename Base = IDXGIObject, typename Parent = IDXGIObject @@ -57,9 +57,9 @@ struct GalliumDXGIObject : public GalliumPrivateDataComObjectBase virtual HRESULT STDMETHODCALLTYPE GetParent( REFIID riid, - void **ppParent) + void **out_parent) { - return parent-QueryInterface(riid, ppParent); + return parent-QueryInterface(riid, out_parent); } }; @@ -112,32 +112,32 @@ struct GalliumDXGIFactory : public GalliumDXGIObjectIDXGIFactory1, IUnknown } virtual HRESULT STDMETHODCALLTYPE EnumAdapters( - UINT Adapter, - IDXGIAdapter **ppAdapter) + UINT adapter, + IDXGIAdapter **out_adapter) { - return EnumAdapters1(Adapter, (IDXGIAdapter1**)ppAdapter); + return EnumAdapters1(adapter, (IDXGIAdapter1**)out_adapter); } virtual HRESULT STDMETHODCALLTYPE EnumAdapters1( - UINT Adapter, - IDXGIAdapter1 **ppAdapter) + UINT adapter, + IDXGIAdapter1 **out_adapter) { - *ppAdapter = 0; - if(Adapter == 0) + *out_adapter = 0; + if(adapter == 0) { - return GalliumDXGIAdapterCreate(this, platform, display, ppAdapter); + return GalliumDXGIAdapterCreate(this, platform, display, out_adapter); } #if 0 // TODO: enable this if(platform == native_get_x11_platform()) { unsigned nscreens = ScreenCount((Display*)display); - if(Adapter nscreens) + if(adapter nscreens) { unsigned def_screen = DefaultScreen(display); - if(Adapter = def_screen) - --Adapter; - *ppAdapter = GalliumDXGIAdapterCreate(this, platform, display, Adapter); + if(adapter = def_screen) + --adapter; + *out_adapter = GalliumDXGIAdapterCreate(this, platform, display, adapter); return S_OK; } } @@ -153,35 +153,35 @@ struct GalliumDXGIFactory : public GalliumDXGIObjectIDXGIFactory1, IUnknown * Does this act for existing swapchains? For new swapchains? */ virtual HRESULT STDMETHODCALLTYPE MakeWindowAssociation( - HWND WindowHandle, - UINT Flags) + HWND window_handle, + UINT flags) { /* TODO: actually implement, for Wine, X11 and KMS*/ - associated_window = WindowHandle; + associated_window = window_handle; return S_OK;
Mesa (master): d3d11: obliterate IDL parameter names
Module: Mesa Branch: master Commit: b6b3fbcdb14faf5a5be66112a06d3406e7a46998 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b6b3fbcdb14faf5a5be66112a06d3406e7a46998 Author: Luca Barbieri l...@luca-barbieri.com Date: Thu Sep 23 15:45:13 2010 +0200 d3d11: obliterate IDL parameter names --- .../state_trackers/d3d1x/d3dapi/d3d10_1.idl| 50 +- .../state_trackers/d3d1x/d3dapi/d3d10shader.idl| 34 +- src/gallium/state_trackers/d3d1x/d3dapi/d3d11.idl | 948 ++-- .../state_trackers/d3d1x/d3dapi/d3d11shader.idl| 62 +- .../state_trackers/d3d1x/d3dapi/d3dcommon.idl | 12 +- src/gallium/state_trackers/d3d1x/d3dapi/dxgi.idl | 176 ++-- 6 files changed, 641 insertions(+), 641 deletions(-) Diff: http://cgit.freedesktop.org/mesa/mesa/diff/?id=b6b3fbcdb14faf5a5be66112a06d3406e7a46998 ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): d3d1x: remove specstrings.h include
Module: Mesa Branch: master Commit: 9a97b9af68ef1e555d7581c1997c947d78b30ca7 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9a97b9af68ef1e555d7581c1997c947d78b30ca7 Author: Luca Barbieri l...@luca-barbieri.com Date: Thu Sep 23 16:02:45 2010 +0200 d3d1x: remove specstrings.h include --- .../state_trackers/d3d1x/gd3d1x/d3d1x_private.h|3 --- 1 files changed, 0 insertions(+), 3 deletions(-) diff --git a/src/gallium/state_trackers/d3d1x/gd3d1x/d3d1x_private.h b/src/gallium/state_trackers/d3d1x/gd3d1x/d3d1x_private.h index 0274a1b..d4b6a8f 100644 --- a/src/gallium/state_trackers/d3d1x/gd3d1x/d3d1x_private.h +++ b/src/gallium/state_trackers/d3d1x/gd3d1x/d3d1x_private.h @@ -41,9 +41,6 @@ #include d3d11.h #include d3d11shader.h - -#include specstrings.h - extern C { #include pipe/p_defines.h ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): d3d1x: flush the pipe context when presenting
Module: Mesa Branch: master Commit: 681f87e09bc278924a19fc960809556e607886f1 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=681f87e09bc278924a19fc960809556e607886f1 Author: Luca Barbieri l...@luca-barbieri.com Date: Thu Sep 23 16:02:58 2010 +0200 d3d1x: flush the pipe context when presenting --- .../state_trackers/d3d1x/dxgi/src/dxgi_native.cpp |2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/src/gallium/state_trackers/d3d1x/dxgi/src/dxgi_native.cpp b/src/gallium/state_trackers/d3d1x/dxgi/src/dxgi_native.cpp index 89be7f5..99d80ea 100644 --- a/src/gallium/state_trackers/d3d1x/dxgi/src/dxgi_native.cpp +++ b/src/gallium/state_trackers/d3d1x/dxgi/src/dxgi_native.cpp @@ -1139,6 +1139,8 @@ struct GalliumDXGISwapChain : public GalliumDXGIObjectIDXGISwapChain, GalliumDX if(dst_surface) pipe-screen-tex_surface_destroy(dst_surface); + pipe-flush(pipe, PIPE_FLUSH_RENDER_CACHE | PIPE_FLUSH_FRAME); + if(db) { if(!surface-swap_buffers(surface)) ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): d3d1x: remove another include specstrings.h
Module: Mesa Branch: master Commit: 206c4cc8787ca4a635ed0248b8c17e0d833cc526 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=206c4cc8787ca4a635ed0248b8c17e0d833cc526 Author: Luca Barbieri l...@luca-barbieri.com Date: Thu Sep 23 16:07:33 2010 +0200 d3d1x: remove another include specstrings.h --- .../state_trackers/d3d1x/dxgi/src/dxgi_private.h |1 - 1 files changed, 0 insertions(+), 1 deletions(-) diff --git a/src/gallium/state_trackers/d3d1x/dxgi/src/dxgi_private.h b/src/gallium/state_trackers/d3d1x/dxgi/src/dxgi_private.h index 30a6932..187a0f9 100644 --- a/src/gallium/state_trackers/d3d1x/dxgi/src/dxgi_private.h +++ b/src/gallium/state_trackers/d3d1x/dxgi/src/dxgi_private.h @@ -37,7 +37,6 @@ #include d3d11.h #include galliumcom.h #include galliumdxgi.h -#include specstrings.h struct native_display; ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): d3d1x: flush properly
Module: Mesa Branch: master Commit: 1734a785384430f022de453dc5cb59b8c4999833 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1734a785384430f022de453dc5cb59b8c4999833 Author: Luca Barbieri l...@luca-barbieri.com Date: Thu Sep 23 16:08:37 2010 +0200 d3d1x: flush properly --- .../state_trackers/d3d1x/dxgi/src/dxgi_native.cpp |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/src/gallium/state_trackers/d3d1x/dxgi/src/dxgi_native.cpp b/src/gallium/state_trackers/d3d1x/dxgi/src/dxgi_native.cpp index 99d80ea..74bce59 100644 --- a/src/gallium/state_trackers/d3d1x/dxgi/src/dxgi_native.cpp +++ b/src/gallium/state_trackers/d3d1x/dxgi/src/dxgi_native.cpp @@ -1139,7 +1139,7 @@ struct GalliumDXGISwapChain : public GalliumDXGIObjectIDXGISwapChain, GalliumDX if(dst_surface) pipe-screen-tex_surface_destroy(dst_surface); - pipe-flush(pipe, PIPE_FLUSH_RENDER_CACHE | PIPE_FLUSH_FRAME); + pipe-flush(pipe, PIPE_FLUSH_RENDER_CACHE | PIPE_FLUSH_FRAME, 0); if(db) { ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (7.9): 21 new commits
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=97cfa1240cafe2a119ba1fcd2a0aab3087b309f7 Author: Kristian Høgsberg k...@bitplanet.net Date: Wed Sep 22 11:01:11 2010 -0400 intel: Fix GL_ARB_shading_language_120 commit Fix commit e7087175f8a04f777403366fb34b58edd00f4d60. Move the reference to GL_VERSION_2_1_functions to intel_extensions.c where it's available, don't try to enable a non-existing extension and advertise 1.20 for all intel chipsets, not just GEN4 and up. (cherry picked from commit b91dba49e0b08b18dbd6c477facdcc7b5472c8c7) URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6b0c28066039e895932f096c6528de042afbe192 Author: Brian Paul bri...@vmware.com Date: Tue Sep 21 18:13:02 2010 -0600 mesa: don't advertise bogus GL_ARB_shading_language_120 extension Instead of using the invalid GL_ARB_shading_language_120 extension to determine the GLSL version, use a new ctx-Const.GLSLVersion field. Updated the intel and r600 drivers, but untested. See fd.o bug 29910 NOTE: This is a candidate for the 7.9 branch (but let's wait and see if there's any regressions). (cherry picked from commit e7087175f8a04f777403366fb34b58edd00f4d60) URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b437c9102f6a96e0ca4de75000c772c63fc85f0f Author: Eric Anholt e...@anholt.net Date: Tue Sep 21 10:35:50 2010 -0700 i965: Share the KIL_NV implementation between glsl and non-glsl. (cherry picked from commit 23c507f1358833585de330ed313dffafabbbd3cd) URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4ec818ea4aeb79c1a52a92f88189ab7a676299ff Author: Kenneth Graunke kenn...@whitecape.org Date: Sun Sep 19 04:51:07 2010 +0200 glsl: Fix broken handling of ir_binop_equal and ir_binop_nequal. When ir_binop_all_equal and ir_binop_any_nequal were introduced, the meaning of these two opcodes changed to return vectors rather than a single scalar, but the constant expression handling code was incorrectly written and only worked for scalars. As a result, only the first component of the returned vector would be properly initialized. (cherry picked from commit 6ea16b6c510ee7f0e68505838a99562f0852f8e4) URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=80a6cbfea326e8a9332b89f20ca9a87ac52608b0 Author: Kenneth Graunke kenn...@whitecape.org Date: Sun Sep 19 04:50:28 2010 +0200 glsl: Add comments to clarify the types of comparison binops. (cherry picked from commit 14eea268284491d64ff92b37723bff1e9ff14b40) URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ec2031563a7ead76ae0b9710a8736c4e9d40f42d Author: Brian Paul bri...@vmware.com Date: Mon Sep 20 08:22:51 2010 -0600 glsl2: silence compiler warnings in printf() calls Such as: ir_validate.cpp:143: warning: format ‘%p’ expects type ‘void*’, but argument 2 has type ‘ir_variable*’ (cherry picked from commit 17391241599137b9729e9ee6c5487d05e04d8aee) URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b7d4f08f4ef92116ba228b53b27ea2e3456b894e Author: Ian Romanick ian.d.roman...@intel.com Date: Sat Sep 18 16:08:38 2010 +0200 glsl: Add doxygen comments (cherry picked from commit e053d62aa573651abdd78666d299272c8219a3aa) URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2fc2b896809907f920a16bbea29527ab6fea2ee5 Author: Kenneth Graunke kenn...@whitecape.org Date: Sat Sep 18 15:56:28 2010 +0200 glsl/builtins: Switch comparison functions to just return an expression. (cherry picked from commit dbd24805071332a06828bd92ed0f6e49c897c146) URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b29289a61cec88a67541dc7e3bf3fcfba27e38ef Author: Kenneth Graunke kenn...@whitecape.org Date: Sat Sep 18 14:44:18 2010 +0200 glsl/builtins: Fix equal and notEqual builtins. Commit 309cd4115b7cba669a0bf858e7809cb6dae90ddf incorrectly converted these to all_equal and any_nequal, which is the wrong operation. (cherry picked from commit 52f9156e88d87a528996f01795203feba3f789f1) URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=728829ab63209afcf5886bed47f8c95c3f045125 Author: Kenneth Graunke kenn...@whitecape.org Date: Sat Sep 18 11:11:09 2010 +0200 glsl: Properly handle nested structure types. Fixes piglit test CorrectFull.frag. (cherry picked from commit ca92ae2699c4aad21c0811b9a5562b9223816caf) URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9753ee3f3ec33cece9121e6eee11136fccf26c4e Author: Tilman Sauerbeck til...@code-monkey.de Date: Sat Sep 18 01:56:34 2010 +0200 glsl2: Fixed cloning of ir_call error instructions. Those have the callee field set to the null pointer, so calling the public constructor will segfault. Signed-off-by: Tilman Sauerbeck til...@code-monkey.de (cherry picked from commit 3894fddccc3a6da91513b49142a8f0dbbf8aa448) URL:
Mesa (master): d3d1x: add missing guid.cpp
Module: Mesa Branch: master Commit: eaf8fe84614f4881ddb03568de11cb4ed3ea5322 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=eaf8fe84614f4881ddb03568de11cb4ed3ea5322 Author: Luca Barbieri l...@luca-barbieri.com Date: Thu Sep 23 16:17:36 2010 +0200 d3d1x: add missing guid.cpp --- .../state_trackers/d3d1x/d3d1xstutil/src/guids.cpp |6 ++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/src/gallium/state_trackers/d3d1x/d3d1xstutil/src/guids.cpp b/src/gallium/state_trackers/d3d1x/d3d1xstutil/src/guids.cpp new file mode 100644 index 000..ec45035 --- /dev/null +++ b/src/gallium/state_trackers/d3d1x/d3d1xstutil/src/guids.cpp @@ -0,0 +1,6 @@ +#define INITGUID +#include d3d1xstutil.h +#include galliumd3d11.h +#include galliumd3d10_1.h +#include galliumdxgi.h +#include galliumcom.h ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): d3d1x: fix build without system EGL/egl.h
Module: Mesa Branch: master Commit: 36a64bfe541c1c8149db08c559e044dfd835c69a URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=36a64bfe541c1c8149db08c559e044dfd835c69a Author: Luca Barbieri l...@luca-barbieri.com Date: Thu Sep 23 16:18:52 2010 +0200 d3d1x: fix build without system EGL/egl.h --- src/gallium/state_trackers/d3d1x/dxgi/Makefile |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/src/gallium/state_trackers/d3d1x/dxgi/Makefile b/src/gallium/state_trackers/d3d1x/dxgi/Makefile index 323f6f7..6cdc33b 100644 --- a/src/gallium/state_trackers/d3d1x/dxgi/Makefile +++ b/src/gallium/state_trackers/d3d1x/dxgi/Makefile @@ -1,5 +1,5 @@ LIBNAME=dxgi -LIBRARY_INCLUDES=-Iinclude -I../gd3dapi -I../d3dapi -I../w32api -I../d3d1xstutil/include -I../include -I../../../include -I../../../auxiliary -I../../../state_trackers/egl/common +LIBRARY_INCLUDES=-I../../../../../include -Iinclude -I../gd3dapi -I../d3dapi -I../w32api -I../d3d1xstutil/include -I../include -I../../../include -I../../../auxiliary -I../../../state_trackers/egl/common LIBRARY_DEFINES=-DDXGI_DRIVER_SEARCH_DIR=\$(EGL_DRIVER_INSTALL_DIR)\ CPP_SOURCES=$(wildcard src/*.cpp) ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): d3d1x: add autogenerated files as prerequisites, so make builds them
Module: Mesa Branch: master Commit: bccd4eb824d32256dd0f9234df9ddf9ab5ed90fd URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=bccd4eb824d32256dd0f9234df9ddf9ab5ed90fd Author: Luca Barbieri l...@luca-barbieri.com Date: Thu Sep 23 16:21:14 2010 +0200 d3d1x: add autogenerated files as prerequisites, so make builds them --- .../state_trackers/d3d1x/d3d1xshader/Makefile |4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/src/gallium/state_trackers/d3d1x/d3d1xshader/Makefile b/src/gallium/state_trackers/d3d1x/d3d1xshader/Makefile index 4f67145..3754c23 100644 --- a/src/gallium/state_trackers/d3d1x/d3d1xshader/Makefile +++ b/src/gallium/state_trackers/d3d1x/d3d1xshader/Makefile @@ -1,11 +1,13 @@ LIBNAME=d3d1xshader -CPP_SOURCES=$(wildcard src/*.cpp) +CPP_SOURCES=$(wildcard src/*.cpp) src/sm4_text.cpp LIBRARY_INCLUDES=-Iinclude -I../d3dapi -I../w32api PROGS=tools/fxdis LIBS=libd3d1xshader.a include ../Makefile.inc +include/sm4.h: include/sm4_defs.h + include/sm4_defs.h: $(wildcard defs/*.txt) ./gen-header.sh $^ $@ ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): d3d1x: obliterate IDL parameter names from d3d10. idl from Wine too
Module: Mesa Branch: master Commit: 96da9b28c838af00f15d6c0a5973857019d3aecc URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=96da9b28c838af00f15d6c0a5973857019d3aecc Author: Luca Barbieri l...@luca-barbieri.com Date: Thu Sep 23 16:29:29 2010 +0200 d3d1x: obliterate IDL parameter names from d3d10.idl from Wine too --- src/gallium/state_trackers/d3d1x/d3dapi/d3d10.idl | 582 ++-- 1 files changed, 291 insertions(+), 291 deletions(-) diff --git a/src/gallium/state_trackers/d3d1x/d3dapi/d3d10.idl b/src/gallium/state_trackers/d3d1x/d3dapi/d3d10.idl index c371bbe..91b1abc 100644 --- a/src/gallium/state_trackers/d3d1x/d3dapi/d3d10.idl +++ b/src/gallium/state_trackers/d3d1x/d3dapi/d3d10.idl @@ -912,18 +912,18 @@ interface ID3D10Device; interface ID3D10DeviceChild : IUnknown { void GetDevice( -[out] ID3D10Device **ppDevice); +[out] ID3D10Device **a); HRESULT GetPrivateData( -[in] REFGUID guid, -[in, out] UINT *pDataSize, -[out] void *pData); +[in] REFGUID a, +[in, out] UINT *b, +[out] void *c); HRESULT SetPrivateData( -[in] REFGUID guid, -[in] UINT DataSize, -[in] const void *pData); +[in] REFGUID a, +[in] UINT b, +[in] const void *c); HRESULT SetPrivateDataInterface( -[in] REFGUID guid, -[in] const IUnknown *pData); +[in] REFGUID a, +[in] const IUnknown *b); } /* Resource */ @@ -936,9 +936,9 @@ interface ID3D10DeviceChild : IUnknown interface ID3D10Resource : ID3D10DeviceChild { void GetType( -[out] D3D10_RESOURCE_DIMENSION *rType); +[out] D3D10_RESOURCE_DIMENSION *a); void SetEvictionPriority( -[in] UINT EvictionPriority); +[in] UINT a); UINT GetEvictionPriority(); } @@ -950,12 +950,12 @@ interface ID3D10Resource : ID3D10DeviceChild interface ID3D10Buffer : ID3D10Resource { HRESULT Map( -[in] D3D10_MAP MapType, -[in] UINT MapFlags, -[out] void **ppData); +[in] D3D10_MAP a, +[in] UINT b, +[out] void **c); void Unmap(); void GetDesc( -[out] D3D10_BUFFER_DESC *pDesc); +[out] D3D10_BUFFER_DESC *a); } [ @@ -966,14 +966,14 @@ interface ID3D10Buffer : ID3D10Resource interface ID3D10Texture1D : ID3D10Resource { HRESULT Map( -[in] UINT Subresource, -[in] D3D10_MAP MapType, -[in] UINT MapFlags, -[out] void **ppData); +[in] UINT a, +[in] D3D10_MAP b, +[in] UINT c, +[out] void **d); void Unmap( -[in] UINT Subresource); +[in] UINT a); void GetDesc( -[out] D3D10_TEXTURE1D_DESC *pDesc); +[out] D3D10_TEXTURE1D_DESC *a); } [ @@ -984,14 +984,14 @@ interface ID3D10Texture1D : ID3D10Resource interface ID3D10Texture2D : ID3D10Resource { HRESULT Map( -[in] UINT Subresource, -[in] D3D10_MAP MapType, -[in] UINT MapFlags, -[out] D3D10_MAPPED_TEXTURE2D *pMappedTex2D); +[in] UINT a, +[in] D3D10_MAP b, +[in] UINT c, +[out] D3D10_MAPPED_TEXTURE2D *d); void Unmap( -[in] UINT Subresource); +[in] UINT a); void GetDesc( -[out] D3D10_TEXTURE2D_DESC *pDesc); +[out] D3D10_TEXTURE2D_DESC *a); } [ @@ -1002,14 +1002,14 @@ interface ID3D10Texture2D : ID3D10Resource interface ID3D10Texture3D : ID3D10Resource { HRESULT Map( -[in] UINT Subresource, -[in] D3D10_MAP MapType, -[in] UINT MapFlags, -[out] D3D10_MAPPED_TEXTURE3D *pMappedTex3D); +[in] UINT a, +[in] D3D10_MAP b, +[in] UINT c, +[out] D3D10_MAPPED_TEXTURE3D *d); void Unmap( -[in] UINT Subresource); +[in] UINT a); void GetDesc( -[out] D3D10_TEXTURE3D_DESC *pDesc); +[out] D3D10_TEXTURE3D_DESC *a); } [ @@ -1020,7 +1020,7 @@ interface ID3D10Texture3D : ID3D10Resource interface ID3D10View : ID3D10DeviceChild { void GetResource( -[out] ID3D10Resource **ppResource); +[out] ID3D10Resource **a); } [ @@ -1031,7 +1031,7 @@ interface ID3D10View : ID3D10DeviceChild interface ID3D10DepthStencilView : ID3D10View { void GetDesc( -[out] D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc); +[out] D3D10_DEPTH_STENCIL_VIEW_DESC *a); } @@ -1043,7 +1043,7 @@ interface ID3D10DepthStencilView : ID3D10View interface ID3D10RenderTargetView : ID3D10View { void GetDesc( -[out] D3D10_RENDER_TARGET_VIEW_DESC *pDesc); +
Mesa (master): mesa: Remove EXT_histogram.
Module: Mesa Branch: master Commit: 7126e38d9037da66fd531c4cb02b3843b68b84ff URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7126e38d9037da66fd531c4cb02b3843b68b84ff Author: Eric Anholt e...@anholt.net Date: Thu Sep 9 16:10:22 2010 -0700 mesa: Remove EXT_histogram. This has always been optional, and not useful. --- src/mesa/main/attrib.c |4 - src/mesa/main/context.c |2 - src/mesa/main/enable.c | 21 - src/mesa/main/extensions.c |3 - src/mesa/main/get.c |6 - src/mesa/main/histogram.c | 971 +-- src/mesa/main/histogram.h |2 - src/mesa/main/image.c | 74 src/mesa/main/mfeatures.h |1 - src/mesa/main/mtypes.h | 42 +-- src/mesa/main/pixel.c |8 - src/mesa/swrast/s_copypix.c | 44 +- src/mesa/swrast/s_drawpix.c | 35 +- 13 files changed, 45 insertions(+), 1168 deletions(-) Diff: http://cgit.freedesktop.org/mesa/mesa/diff/?id=7126e38d9037da66fd531c4cb02b3843b68b84ff ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): mesa: Remove the non-required ARB_imaging extension.
Module: Mesa Branch: master Commit: 907a6734fcd427a6ac6fe5fcfbeac5d6054d82ae URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=907a6734fcd427a6ac6fe5fcfbeac5d6054d82ae Author: Eric Anholt e...@anholt.net Date: Thu Sep 9 15:53:55 2010 -0700 mesa: Remove the non-required ARB_imaging extension. Many of the EXT_ extensions in the subset have significant code overhead with no users. It is not a required part of GL -- though text describing the extension is part of the core spec since 1.2, it is always conditional on the ARB_imaging extension. --- src/mesa/main/blend.c |6 ++ src/mesa/main/extensions.c |5 + src/mesa/main/get.c|4 ++-- src/mesa/main/histogram.c | 20 ++-- src/mesa/main/mtypes.h |1 - src/mesa/state_tracker/st_cb_texture.c |1 - 6 files changed, 15 insertions(+), 22 deletions(-) diff --git a/src/mesa/main/blend.c b/src/mesa/main/blend.c index d022770..736a94c 100644 --- a/src/mesa/main/blend.c +++ b/src/mesa/main/blend.c @@ -215,8 +215,7 @@ _mesa_validate_blend_equation( GLcontext *ctx, break; case GL_MIN: case GL_MAX: - if (!ctx-Extensions.EXT_blend_minmax - !ctx-Extensions.ARB_imaging) { + if (!ctx-Extensions.EXT_blend_minmax) { return GL_FALSE; } break; @@ -229,8 +228,7 @@ _mesa_validate_blend_equation( GLcontext *ctx, break; case GL_FUNC_SUBTRACT: case GL_FUNC_REVERSE_SUBTRACT: - if (!ctx-Extensions.EXT_blend_subtract - !ctx-Extensions.ARB_imaging) { + if (!ctx-Extensions.EXT_blend_subtract) { return GL_FALSE; } break; diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c index 080fa98..b6500b9 100644 --- a/src/mesa/main/extensions.c +++ b/src/mesa/main/extensions.c @@ -62,7 +62,6 @@ static const struct { /* { OFF, GL_ARB_geometry_shader4, F(ARB_geometry_shader4) }, */ { OFF, GL_ARB_half_float_pixel, F(ARB_half_float_pixel) }, { OFF, GL_ARB_half_float_vertex, F(ARB_half_float_vertex) }, - { OFF, GL_ARB_imaging,F(ARB_imaging) }, { OFF, GL_ARB_instanced_arrays, F(ARB_instanced_arrays) }, { OFF, GL_ARB_map_buffer_range, F(ARB_map_buffer_range) }, { ON, GL_ARB_multisample,F(ARB_multisample) }, @@ -255,7 +254,6 @@ _mesa_enable_sw_extensions(GLcontext *ctx) #endif ctx-Extensions.ARB_half_float_pixel = GL_TRUE; ctx-Extensions.ARB_half_float_vertex = GL_TRUE; - ctx-Extensions.ARB_imaging = GL_TRUE; ctx-Extensions.ARB_map_buffer_range = GL_TRUE; ctx-Extensions.ARB_multitexture = GL_TRUE; #if FEATURE_queryobj @@ -392,12 +390,11 @@ _mesa_enable_sw_extensions(GLcontext *ctx) /** - * Enable GL_ARB_imaging and all the EXT extensions that are subsets of it. + * Enable common EXT extensions in the ARB_imaging subset. */ void _mesa_enable_imaging_extensions(GLcontext *ctx) { - ctx-Extensions.ARB_imaging = GL_TRUE; ctx-Extensions.EXT_blend_color = GL_TRUE; ctx-Extensions.EXT_blend_logic_op = GL_TRUE; ctx-Extensions.EXT_blend_minmax = GL_TRUE; diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c index 2062134..a840663 100644 --- a/src/mesa/main/get.c +++ b/src/mesa/main/get.c @@ -938,12 +938,12 @@ static const struct value_desc values[] = { CONTEXT_FLOAT(Pixel.PostConvolutionBias[3]), extra_EXT_convolution }, - /* GL_EXT_histogram / GL_ARB_imaging */ + /* GL_EXT_histogram */ { GL_HISTOGRAM, CONTEXT_BOOL(Pixel.HistogramEnabled), extra_EXT_histogram }, { GL_MINMAX, CONTEXT_BOOL(Pixel.MinMaxEnabled), extra_EXT_histogram }, - /* GL_SGI_color_table / GL_ARB_imaging */ + /* GL_SGI_color_table */ { GL_COLOR_TABLE_SGI, CONTEXT_BOOL(Pixel.ColorTableEnabled[COLORTABLE_PRECONVOLUTION]), extra_SGI_color_table }, diff --git a/src/mesa/main/histogram.c b/src/mesa/main/histogram.c index 4e482bc..db3cbfc 100644 --- a/src/mesa/main/histogram.c +++ b/src/mesa/main/histogram.c @@ -629,7 +629,7 @@ _mesa_GetMinmax(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvo GET_CURRENT_CONTEXT(ctx); ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); - if (!ctx-Extensions.EXT_histogram !ctx-Extensions.ARB_imaging) { + if (!ctx-Extensions.EXT_histogram) { _mesa_error(ctx, GL_INVALID_OPERATION, glGetMinmax); return; } @@ -692,7 +692,7 @@ _mesa_GetHistogram(GLenum target, GLboolean reset, GLenum format, GLenum type, G GET_CURRENT_CONTEXT(ctx); ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); - if (!ctx-Extensions.EXT_histogram !ctx-Extensions.ARB_imaging) { + if (!ctx-Extensions.EXT_histogram) { _mesa_error(ctx, GL_INVALID_OPERATION, glGetHistogram); return; } @@ -752,7 +752,7 @@ _mesa_GetHistogramParameterfv(GLenum target, GLenum pname, GLfloat
Mesa (master): mesa: Remove SGI_color_table.
Module: Mesa Branch: master Commit: 6c227e57e69158e4da40c69322db0eac4c31086c URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6c227e57e69158e4da40c69322db0eac4c31086c Author: Eric Anholt e...@anholt.net Date: Thu Sep 9 16:25:17 2010 -0700 mesa: Remove SGI_color_table. Another optional ARB_imaging subset extension. --- src/mesa/main/attrib.c | 13 --- src/mesa/main/colortab.c | 204 +--- src/mesa/main/colortab.h |7 -- src/mesa/main/context.c|2 - src/mesa/main/enable.c | 34 +--- src/mesa/main/extensions.c |3 - src/mesa/main/get.c| 12 --- src/mesa/main/image.c | 12 --- src/mesa/main/mtypes.h | 19 + src/mesa/main/pixel.c | 14 --- 10 files changed, 4 insertions(+), 316 deletions(-) diff --git a/src/mesa/main/attrib.c b/src/mesa/main/attrib.c index 9a8917f..73c2375 100644 --- a/src/mesa/main/attrib.c +++ b/src/mesa/main/attrib.c @@ -69,7 +69,6 @@ struct gl_enable_attrib GLboolean Blend; GLbitfield ClipPlanes; GLboolean ColorMaterial; - GLboolean ColorTable[COLORTABLE_MAX]; GLboolean Convolution1D; GLboolean Convolution2D; GLboolean Separable2D; @@ -260,9 +259,6 @@ _mesa_PushAttrib(GLbitfield mask) attr-Blend = ctx-Color.BlendEnabled; attr-ClipPlanes = ctx-Transform.ClipPlanesEnabled; attr-ColorMaterial = ctx-Light.ColorMaterialEnabled; - for (i = 0; i COLORTABLE_MAX; i++) { - attr-ColorTable[i] = ctx-Pixel.ColorTableEnabled[i]; - } attr-Convolution1D = ctx-Pixel.Convolution1DEnabled; attr-Convolution2D = ctx-Pixel.Convolution2DEnabled; attr-Separable2D = ctx-Pixel.Separable2DEnabled; @@ -515,15 +511,6 @@ pop_enable_group(GLcontext *ctx, const struct gl_enable_attrib *enable) TEST_AND_UPDATE(ctx-Light.ColorMaterialEnabled, enable-ColorMaterial, GL_COLOR_MATERIAL); - TEST_AND_UPDATE(ctx-Pixel.ColorTableEnabled[COLORTABLE_PRECONVOLUTION], - enable-ColorTable[COLORTABLE_PRECONVOLUTION], - GL_COLOR_TABLE); - TEST_AND_UPDATE(ctx-Pixel.ColorTableEnabled[COLORTABLE_POSTCONVOLUTION], - enable-ColorTable[COLORTABLE_POSTCONVOLUTION], - GL_POST_CONVOLUTION_COLOR_TABLE); - TEST_AND_UPDATE(ctx-Pixel.ColorTableEnabled[COLORTABLE_POSTCOLORMATRIX], - enable-ColorTable[COLORTABLE_POSTCOLORMATRIX], - GL_POST_COLOR_MATRIX_COLOR_TABLE); TEST_AND_UPDATE(ctx-Polygon.CullFlag, enable-CullFace, GL_CULL_FACE); TEST_AND_UPDATE(ctx-Transform.DepthClamp, enable-DepthClamp, GL_DEPTH_CLAMP); diff --git a/src/mesa/main/colortab.c b/src/mesa/main/colortab.c index 52d5bad..5c2697d 100644 --- a/src/mesa/main/colortab.c +++ b/src/mesa/main/colortab.c @@ -297,15 +297,6 @@ _mesa_ColorTable( GLenum target, GLenum internalFormat, case GL_SHARED_TEXTURE_PALETTE_EXT: table = ctx-Texture.Palette; break; - case GL_COLOR_TABLE: - table = ctx-ColorTable[COLORTABLE_PRECONVOLUTION]; - scale = ctx-Pixel.ColorTableScale[COLORTABLE_PRECONVOLUTION]; - bias = ctx-Pixel.ColorTableBias[COLORTABLE_PRECONVOLUTION]; - break; - case GL_PROXY_COLOR_TABLE: - table = ctx-ProxyColorTable[COLORTABLE_PRECONVOLUTION]; - proxy = GL_TRUE; - break; case GL_TEXTURE_COLOR_TABLE_SGI: if (!ctx-Extensions.SGI_texture_color_table) { _mesa_error(ctx, GL_INVALID_ENUM, glColorTable(target)); @@ -323,24 +314,6 @@ _mesa_ColorTable( GLenum target, GLenum internalFormat, table = (texUnit-ProxyColorTable); proxy = GL_TRUE; break; - case GL_POST_CONVOLUTION_COLOR_TABLE: - table = ctx-ColorTable[COLORTABLE_POSTCONVOLUTION]; - scale = ctx-Pixel.ColorTableScale[COLORTABLE_POSTCONVOLUTION]; - bias = ctx-Pixel.ColorTableBias[COLORTABLE_POSTCONVOLUTION]; - break; - case GL_PROXY_POST_CONVOLUTION_COLOR_TABLE: - table = ctx-ProxyColorTable[COLORTABLE_POSTCONVOLUTION]; - proxy = GL_TRUE; - break; - case GL_POST_COLOR_MATRIX_COLOR_TABLE: - table = ctx-ColorTable[COLORTABLE_POSTCOLORMATRIX]; - scale = ctx-Pixel.ColorTableScale[COLORTABLE_POSTCOLORMATRIX]; - bias = ctx-Pixel.ColorTableBias[COLORTABLE_POSTCOLORMATRIX]; - break; - case GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE: - table = ctx-ProxyColorTable[COLORTABLE_POSTCOLORMATRIX]; - proxy = GL_TRUE; - break; default: /* try texture targets */ { @@ -459,11 +432,6 @@ _mesa_ColorSubTable( GLenum target, GLsizei start, case GL_SHARED_TEXTURE_PALETTE_EXT: table = ctx-Texture.Palette; break; - case GL_COLOR_TABLE: - table = ctx-ColorTable[COLORTABLE_PRECONVOLUTION]; - scale =
Mesa (master): mesa: Remove SGI_color_matrix.
Module: Mesa Branch: master Commit: 73578ba9c4938db3a23198c3a2ddf843cfc4f700 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=73578ba9c4938db3a23198c3a2ddf843cfc4f700 Author: Eric Anholt e...@anholt.net Date: Thu Sep 9 16:58:48 2010 -0700 mesa: Remove SGI_color_matrix. Another optional ARB_imaging subset extension. --- src/mesa/drivers/dri/i965/brw_state_upload.c |1 - src/mesa/main/context.c|2 - src/mesa/main/debug.c |3 +- src/mesa/main/dlist.c |2 - src/mesa/main/extensions.c |3 - src/mesa/main/get.c| 25 - src/mesa/main/image.c | 34 -- src/mesa/main/image.h |5 - src/mesa/main/matrix.c |6 - src/mesa/main/mtypes.h | 25 + src/mesa/main/pixel.c | 66 src/mesa/main/querymatrix.c|4 - src/mesa/program/prog_statevars.c | 29 - src/mesa/program/prog_statevars.h |3 - src/mesa/state_tracker/st_atom_pixeltransfer.c | 130 +--- src/mesa/state_tracker/st_extensions.c |1 - 16 files changed, 5 insertions(+), 334 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_state_upload.c b/src/mesa/drivers/dri/i965/brw_state_upload.c index a0c1305..e4f36a7 100644 --- a/src/mesa/drivers/dri/i965/brw_state_upload.c +++ b/src/mesa/drivers/dri/i965/brw_state_upload.c @@ -231,7 +231,6 @@ static struct dirty_bit_map mesa_bits[] = { DEFINE_BIT(_NEW_MODELVIEW), DEFINE_BIT(_NEW_PROJECTION), DEFINE_BIT(_NEW_TEXTURE_MATRIX), - DEFINE_BIT(_NEW_COLOR_MATRIX), DEFINE_BIT(_NEW_ACCUM), DEFINE_BIT(_NEW_COLOR), DEFINE_BIT(_NEW_DEPTH), diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c index 774553c..8728568 100644 --- a/src/mesa/main/context.c +++ b/src/mesa/main/context.c @@ -341,7 +341,6 @@ static void dummy_enum_func(void) { gl_buffer_index bi = BUFFER_FRONT_LEFT; - gl_colortable_index ci = COLORTABLE_PRECONVOLUTION; gl_face_index fi = FACE_POS_X; gl_frag_attrib fa = FRAG_ATTRIB_WPOS; gl_frag_result fr = FRAG_RESULT_DEPTH; @@ -352,7 +351,6 @@ dummy_enum_func(void) gl_geom_result gr = GEOM_RESULT_POS; (void) bi; - (void) ci; (void) fi; (void) fa; (void) fr; diff --git a/src/mesa/main/debug.c b/src/mesa/main/debug.c index 526145a..4205c7a 100644 --- a/src/mesa/main/debug.c +++ b/src/mesa/main/debug.c @@ -85,13 +85,12 @@ void _mesa_print_state( const char *msg, GLuint state ) { _mesa_debug(NULL, - %s: (0x%x) %s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s\n, + %s: (0x%x) %s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s\n, msg, state, (state _NEW_MODELVIEW) ? ctx-ModelView, : , (state _NEW_PROJECTION) ? ctx-Projection, : , (state _NEW_TEXTURE_MATRIX) ? ctx-TextureMatrix, : , - (state _NEW_COLOR_MATRIX)? ctx-ColorMatrix, : , (state _NEW_ACCUM) ? ctx-Accum, : , (state _NEW_COLOR) ? ctx-Color, : , (state _NEW_DEPTH) ? ctx-Depth, : , diff --git a/src/mesa/main/dlist.c b/src/mesa/main/dlist.c index d847d4d..3a730f0 100644 --- a/src/mesa/main/dlist.c +++ b/src/mesa/main/dlist.c @@ -1552,7 +1552,6 @@ save_ColorTableParameterfv(GLenum target, GLenum pname, n[3].f = params[0]; if (pname == GL_COLOR_TABLE_SGI || pname == GL_POST_CONVOLUTION_COLOR_TABLE_SGI || - pname == GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI || pname == GL_TEXTURE_COLOR_TABLE_SGI) { n[4].f = params[1]; n[5].f = params[2]; @@ -1581,7 +1580,6 @@ save_ColorTableParameteriv(GLenum target, GLenum pname, const GLint *params) n[3].i = params[0]; if (pname == GL_COLOR_TABLE_SGI || pname == GL_POST_CONVOLUTION_COLOR_TABLE_SGI || - pname == GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI || pname == GL_TEXTURE_COLOR_TABLE_SGI) { n[4].i = params[1]; n[5].i = params[2]; diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c index 3e48010..3f86973 100644 --- a/src/mesa/main/extensions.c +++ b/src/mesa/main/extensions.c @@ -206,7 +206,6 @@ static const struct { { OFF, GL_NV_vertex_program, F(NV_vertex_program) }, { OFF, GL_NV_vertex_program1_1, F(NV_vertex_program1_1) }, { ON, GL_OES_read_format,F(OES_read_format) }, - { OFF, GL_SGI_color_matrix, F(SGI_color_matrix) }, { OFF, GL_SGI_texture_color_table,F(SGI_texture_color_table) }, { OFF, GL_SGIS_generate_mipmap, F(SGIS_generate_mipmap) }, { OFF, GL_SGIS_texture_border_clamp, F(ARB_texture_border_clamp) }, @@ -366,7 +365,6 @@
Mesa (master): mesa: Remove EXT_convolution.
Module: Mesa Branch: master Commit: a62efdf82c20747feb11dfd7756f0579aa914b57 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a62efdf82c20747feb11dfd7756f0579aa914b57 Author: Eric Anholt e...@anholt.net Date: Thu Sep 9 19:37:15 2010 -0700 mesa: Remove EXT_convolution. More optional code. --- src/mesa/drivers/common/driverfuncs.c |2 - src/mesa/drivers/common/meta.c| 82 -- src/mesa/drivers/dri/intel/intel_extensions.c |2 - src/mesa/drivers/dri/intel/intel_tex_image.c | 20 +- src/mesa/drivers/dri/radeon/radeon_texture.c | 16 +- src/mesa/drivers/dri/savage/savagetex.c |3 - src/mesa/drivers/dri/unichrome/via_tex.c | 22 +- src/mesa/main/attrib.c| 12 - src/mesa/main/context.c |2 - src/mesa/main/convolve.c | 1307 + src/mesa/main/convolve.h | 70 -- src/mesa/main/dd.h|9 - src/mesa/main/enable.c| 34 - src/mesa/main/extensions.c|3 - src/mesa/main/get.c | 33 - src/mesa/main/image.c | 21 +- src/mesa/main/mtypes.h| 46 +- src/mesa/main/pixel.c | 82 -- src/mesa/main/texcompress_fxt1.c |3 - src/mesa/main/texcompress_s3tc.c |5 - src/mesa/main/teximage.c | 62 -- src/mesa/main/texstore.c | 210 + src/mesa/state_tracker/st_cb_readpixels.c |3 - src/mesa/state_tracker/st_cb_texture.c|5 - src/mesa/swrast/s_copypix.c | 103 -- src/mesa/swrast/s_drawpix.c | 57 -- src/mesa/swrast/s_readpix.c | 59 +-- 27 files changed, 63 insertions(+), 2210 deletions(-) Diff: http://cgit.freedesktop.org/mesa/mesa/diff/?id=a62efdf82c20747feb11dfd7756f0579aa914b57 ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): r600g: Destroy the blitter.
Module: Mesa Branch: master Commit: ce8c71817b89ae97f960ba517becc8a74431206f URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ce8c71817b89ae97f960ba517becc8a74431206f Author: Tilman Sauerbeck til...@code-monkey.de Date: Thu Sep 23 22:30:46 2010 +0200 r600g: Destroy the blitter. Signed-off-by: Tilman Sauerbeck til...@code-monkey.de --- src/gallium/drivers/r600/r600_context.c |2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/src/gallium/drivers/r600/r600_context.c b/src/gallium/drivers/r600/r600_context.c index b9abff9..e8eb814 100644 --- a/src/gallium/drivers/r600/r600_context.c +++ b/src/gallium/drivers/r600/r600_context.c @@ -57,6 +57,8 @@ static void r600_destroy_context(struct pipe_context *context) free(rctx-vs_constant); free(rctx-vs_resource); + util_blitter_destroy(rctx-blitter); + u_upload_destroy(rctx-upload_vb); u_upload_destroy(rctx-upload_ib); ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): r600g: initial evergreen support in new path
Module: Mesa Branch: master Commit: b360c050b60a578ce6c75cbc872dd54999b3f6c5 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b360c050b60a578ce6c75cbc872dd54999b3f6c5 Author: Jerome Glisse jgli...@redhat.com Date: Wed Sep 22 17:37:30 2010 -0400 r600g: initial evergreen support in new path This doesn't work yet. Signed-off-by: Jerome Glisse jgli...@redhat.com --- src/gallium/drivers/r600/Makefile |1 + src/gallium/drivers/r600/evergreen_state.c| 1477 + src/gallium/drivers/r600/evergreend.h | 410 +++ src/gallium/drivers/r600/r600.h | 16 + src/gallium/drivers/r600/r600_pipe.h | 146 +++ src/gallium/drivers/r600/r600_state2.c| 164 +-- src/gallium/winsys/r600/drm/Makefile |1 + src/gallium/winsys/r600/drm/evergreen_state.c | 685 src/gallium/winsys/r600/drm/r600_state2.c | 32 +- 9 files changed, 2806 insertions(+), 126 deletions(-) Diff: http://cgit.freedesktop.org/mesa/mesa/diff/?id=b360c050b60a578ce6c75cbc872dd54999b3f6c5 ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): r300g: fix point sprite coord.
Module: Mesa Branch: master Commit: c0c0c4b96b0174f1750c1e78bb12de65ec577bbf URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c0c0c4b96b0174f1750c1e78bb12de65ec577bbf Author: Dave Airlie airl...@redhat.com Date: Fri Sep 24 07:45:45 2010 +1000 r300g: fix point sprite coord. handled elsewhere now. thanks to Droste on irc for pointing out the fix --- src/gallium/drivers/r300/r300_state.c |4 +--- 1 files changed, 1 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/r300/r300_state.c b/src/gallium/drivers/r300/r300_state.c index 8ccb639..d6cded9 100644 --- a/src/gallium/drivers/r300/r300_state.c +++ b/src/gallium/drivers/r300/r300_state.c @@ -950,10 +950,8 @@ static void* r300_create_rs_state(struct pipe_context* pipe, rs-rs = *state; rs-rs_draw = *state; -/* Generate point sprite texture coordinates in GENERIC0 - * if point_quad_rasterization is TRUE. */ rs-rs.sprite_coord_enable = state-point_quad_rasterization * - (state-sprite_coord_enable | 1); + state-sprite_coord_enable; /* Override some states for Draw. */ rs-rs_draw.sprite_coord_enable = 0; /* We can do this in HW. */ ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): intel: Remove disabled stencil drawpixels acceleration.
Module: Mesa Branch: master Commit: d26211e499afb06359d903419315070f022c8efe URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d26211e499afb06359d903419315070f022c8efe Author: Eric Anholt e...@anholt.net Date: Thu Sep 23 14:57:25 2010 -0700 intel: Remove disabled stencil drawpixels acceleration. We still retain the fallback override for GL_STENCIL_INDEX, because the metaops version fails at oglconform. --- src/mesa/drivers/dri/intel/intel_pixel_draw.c | 210 - 1 files changed, 0 insertions(+), 210 deletions(-) diff --git a/src/mesa/drivers/dri/intel/intel_pixel_draw.c b/src/mesa/drivers/dri/intel/intel_pixel_draw.c index a40b232..b5576a9 100644 --- a/src/mesa/drivers/dri/intel/intel_pixel_draw.c +++ b/src/mesa/drivers/dri/intel/intel_pixel_draw.c @@ -49,203 +49,6 @@ #include intel_pixel.h #include intel_fbo.h - -/** XXX compare perf of this vs. _mesa_meta_DrawPixels(STENCIL) */ -static GLboolean -intel_stencil_drawpixels(GLcontext * ctx, -GLint x, GLint y, -GLsizei width, GLsizei height, -GLenum format, -GLenum type, -const struct gl_pixelstore_attrib *unpack, -const GLvoid *pixels) -{ - struct intel_context *intel = intel_context(ctx); - GLuint texname, rb_name, fb_name, old_fb_name; - GLfloat vertices[4][2]; - struct intel_renderbuffer *irb; - struct intel_renderbuffer *depth_irb; - struct gl_pixelstore_attrib old_unpack; - GLstencil *stencil_pixels; - int row, y1, y2; - GLint old_active_texture; - GLboolean rendering_to_fbo = ctx-DrawBuffer-Name != 0; - - if (format != GL_STENCIL_INDEX) - return GL_FALSE; - - /* If there's nothing to write, we're done. */ - if (ctx-Stencil.WriteMask[0] == 0) - return GL_TRUE; - - /* Can't do a per-bit writemask while treating stencil as rgba data. */ - if ((ctx-Stencil.WriteMask[0] 0xff) != 0xff) { - if (INTEL_DEBUG DEBUG_FALLBACKS) -fprintf(stderr, glDrawPixels(STENCIL_INDEX) fallback: -stencil mask enabled\n); - return GL_FALSE; - } - - /* We don't support stencil testing/ops here */ - if (ctx-Stencil._Enabled) - return GL_FALSE; - - /* We use FBOs for our wrapping of the depthbuffer into a color -* destination. -*/ - if (!ctx-Extensions.EXT_framebuffer_object) - return GL_FALSE; - - /* We're going to mess with texturing with no regard to existing texture -* state, so if there is some set up we have to bail. -*/ - if (ctx-Texture._EnabledUnits != 0) { - if (INTEL_DEBUG DEBUG_FALLBACKS) -fprintf(stderr, glDrawPixels(STENCIL_INDEX) fallback: -texturing enabled\n); - return GL_FALSE; - } - - /* Can't do textured DrawPixels with a fragment program, unless we were -* to generate a new program that sampled our texture and put the results -* in the fragment color before the user's program started. -*/ - if (ctx-FragmentProgram.Enabled) { - if (INTEL_DEBUG DEBUG_FALLBACKS) -fprintf(stderr, glDrawPixels(STENCIL_INDEX) fallback: -fragment program enabled\n); - return GL_FALSE; - } - - /* Check that we can load in a texture this big. */ - if (width (1 (ctx-Const.MaxTextureLevels - 1)) || - height (1 (ctx-Const.MaxTextureLevels - 1))) { - if (INTEL_DEBUG DEBUG_FALLBACKS) -fprintf(stderr, glDrawPixels(STENCIL_INDEX) fallback: -bitmap too large (%dx%d)\n, -width, height); - return GL_FALSE; - } - - if (!ctx-Extensions.ARB_texture_non_power_of_two - (!is_power_of_two(width) || !is_power_of_two(height))) { - if (INTEL_DEBUG DEBUG_FALLBACKS) -fprintf(stderr, -glDrawPixels(GL_STENCIL_INDEX) fallback: NPOT texture\n); - return GL_FALSE; - } - - _mesa_PushAttrib(GL_ENABLE_BIT | GL_TEXTURE_BIT | - GL_CURRENT_BIT | GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - _mesa_PushClientAttrib(GL_CLIENT_VERTEX_ARRAY_BIT); - old_fb_name = ctx-DrawBuffer-Name; - old_active_texture = ctx-Texture.CurrentUnit; - - _mesa_Disable(GL_POLYGON_STIPPLE); - _mesa_Disable(GL_DEPTH_TEST); - _mesa_Disable(GL_STENCIL_TEST); - - /* Unpack the supplied stencil values into a ubyte buffer. */ - assert(sizeof(GLstencil) == sizeof(GLubyte)); - stencil_pixels = malloc(width * height * sizeof(GLstencil)); - for (row = 0; row height; row++) { - GLvoid *source = _mesa_image_address2d(unpack, pixels, -width, height, -GL_COLOR_INDEX, type, -row, 0); - _mesa_unpack_stencil_span(ctx, width, GL_UNSIGNED_BYTE, - stencil_pixels + - row * width * sizeof(GLstencil), -
Mesa (master): r300g: Always try to build libr300compiler.a
Module: Mesa Branch: master Commit: 92762842a0724831a92aa9f76eb52a19cc179649 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=92762842a0724831a92aa9f76eb52a19cc179649 Author: Tom Stellard tstel...@gmail.com Date: Sun Sep 19 22:44:19 2010 -0700 r300g: Always try to build libr300compiler.a Make libr300compiler.a a PHONY target so that this library will always be built. This fixes the problem of libr300compiler.a not being updated when r300g is being built and r300c is not. This is a candidate for the Mesa 7.9 branch. --- src/gallium/drivers/r300/Makefile |1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/src/gallium/drivers/r300/Makefile b/src/gallium/drivers/r300/Makefile index 728bc40..66d900e 100644 --- a/src/gallium/drivers/r300/Makefile +++ b/src/gallium/drivers/r300/Makefile @@ -39,5 +39,6 @@ EXTRA_OBJECTS = \ include ../../Makefile.template +.PHONY: $(COMPILER_ARCHIVE) $(COMPILER_ARCHIVE): $(MAKE) -C $(TOP)/src/mesa/drivers/dri/r300/compiler ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (7.9): r300g: Always try to build libr300compiler.a
Module: Mesa Branch: 7.9 Commit: 3ad027934459f84b82616cd4e1bc9aa959282d60 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3ad027934459f84b82616cd4e1bc9aa959282d60 Author: Tom Stellard tstel...@gmail.com Date: Sun Sep 19 22:44:19 2010 -0700 r300g: Always try to build libr300compiler.a Make libr300compiler.a a PHONY target so that this library will always be built. This fixes the problem of libr300compiler.a not being updated when r300g is being built and r300c is not. (cherry picked from commit 92762842a0724831a92aa9f76eb52a19cc179649) --- src/gallium/drivers/r300/Makefile |1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/src/gallium/drivers/r300/Makefile b/src/gallium/drivers/r300/Makefile index 728bc40..66d900e 100644 --- a/src/gallium/drivers/r300/Makefile +++ b/src/gallium/drivers/r300/Makefile @@ -39,5 +39,6 @@ EXTRA_OBJECTS = \ include ../../Makefile.template +.PHONY: $(COMPILER_ARCHIVE) $(COMPILER_ARCHIVE): $(MAKE) -C $(TOP)/src/mesa/drivers/dri/r300/compiler ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): intel: Remove unnecessary minimum pitch alignment to 32 bytes.
Module: Mesa Branch: master Commit: 2337f364b193c6379ecd5744743b26a5e75e73ae URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2337f364b193c6379ecd5744743b26a5e75e73ae Author: Eric Anholt e...@anholt.net Date: Thu Sep 23 15:47:53 2010 -0700 intel: Remove unnecessary minimum pitch alignment to 32 bytes. This broke with the cleanup I did in convolution removal. It's unnecessary anyway since region_alloc_tiled adjusts pitches for us (64 byte alignment) --- src/mesa/drivers/dri/intel/intel_tex_image.c |6 -- 1 files changed, 0 insertions(+), 6 deletions(-) diff --git a/src/mesa/drivers/dri/intel/intel_tex_image.c b/src/mesa/drivers/dri/intel/intel_tex_image.c index f8cb507..4732efd 100644 --- a/src/mesa/drivers/dri/intel/intel_tex_image.c +++ b/src/mesa/drivers/dri/intel/intel_tex_image.c @@ -333,12 +333,6 @@ intelTexImage(GLcontext * ctx, } else { texelBytes = _mesa_get_format_bytes(texImage-TexFormat); - - /* Minimum pitch of 32 bytes */ - if (width * texelBytes 32) { -width = 32 / texelBytes; -texImage-RowStride = width; - } if (!intelImage-mt) { assert(texImage-RowStride == width); ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): intel: Replace my intel_texture_bitmap code with _mesa_meta_Bitmap.
Module: Mesa Branch: master Commit: fae18559461e62af623be77787ecba4c7013a8b4 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=fae18559461e62af623be77787ecba4c7013a8b4 Author: Eric Anholt e...@anholt.net Date: Thu Sep 23 15:12:21 2010 -0700 intel: Replace my intel_texture_bitmap code with _mesa_meta_Bitmap. The meta code is more general than mine, and appears to pass the same sets of tests (piglit + some oglconform). --- src/mesa/drivers/dri/intel/intel_pixel_bitmap.c | 181 +-- 1 files changed, 1 insertions(+), 180 deletions(-) diff --git a/src/mesa/drivers/dri/intel/intel_pixel_bitmap.c b/src/mesa/drivers/dri/intel/intel_pixel_bitmap.c index 02c0ffc..3ea1d48 100644 --- a/src/mesa/drivers/dri/intel/intel_pixel_bitmap.c +++ b/src/mesa/drivers/dri/intel/intel_pixel_bitmap.c @@ -309,178 +309,6 @@ out: return GL_TRUE; } -static GLboolean -intel_texture_bitmap(GLcontext * ctx, -GLint dst_x, GLint dst_y, -GLsizei width, GLsizei height, -const struct gl_pixelstore_attrib *unpack, -const GLubyte *bitmap) -{ - struct intel_context *intel = intel_context(ctx); - static const char *fp = - !!ARBfp1.0\n - TEMP val;\n - PARAM color=program.local[0];\n - TEX val, fragment.texcoord[0], texture[0], 2D;\n - ADD val, val., {-.5, -.5, -.5, -.5};\n - KIL val;\n - MOV result.color, color;\n - END\n; - GLuint texname; - GLfloat vertices[4][4]; - GLint old_active_texture; - GLubyte *a8_bitmap; - GLfloat dst_z; - - /* We need a fragment program for the KIL effect */ - if (!ctx-Extensions.ARB_fragment_program || - !ctx-Extensions.ARB_vertex_program) { - if (INTEL_DEBUG DEBUG_FALLBACKS) -fprintf(stderr, -glBitmap fallback: No fragment/vertex program support\n); - return GL_FALSE; - } - - /* We're going to mess with texturing with no regard to existing texture -* state, so if there is some set up we have to bail. -*/ - if (ctx-Texture._EnabledUnits != 0) { - if (INTEL_DEBUG DEBUG_FALLBACKS) -fprintf(stderr, glBitmap fallback: texturing enabled\n); - return GL_FALSE; - } - - /* Can't do textured DrawPixels with a fragment program, unless we were -* to generate a new program that sampled our texture and put the results -* in the fragment color before the user's program started. -*/ - if (ctx-FragmentProgram.Enabled) { - if (INTEL_DEBUG DEBUG_FALLBACKS) -fprintf(stderr, glBitmap fallback: fragment program enabled\n); - return GL_FALSE; - } - - if (ctx-VertexProgram.Enabled) { - if (INTEL_DEBUG DEBUG_FALLBACKS) -fprintf(stderr, glBitmap fallback: vertex program enabled\n); - return GL_FALSE; - } - - if (!ctx-Extensions.ARB_texture_non_power_of_two - (!is_power_of_two(width) || !is_power_of_two(height))) { - if (INTEL_DEBUG DEBUG_FALLBACKS) -fprintf(stderr, -glBitmap() fallback: NPOT texture\n); - return GL_FALSE; - } - - if (ctx-Fog.Enabled) { - if (INTEL_DEBUG DEBUG_FALLBACKS) -fprintf(stderr, glBitmap() fallback: fog\n); - return GL_FALSE; - } - - /* Check that we can load in a texture this big. */ - if (width (1 (ctx-Const.MaxTextureLevels - 1)) || - height (1 (ctx-Const.MaxTextureLevels - 1))) { - if (INTEL_DEBUG DEBUG_FALLBACKS) -fprintf(stderr, glBitmap fallback: bitmap too large (%dx%d)\n, -width, height); - return GL_FALSE; - } - - if (_mesa_is_bufferobj(unpack-BufferObj)) { - bitmap = map_pbo(ctx, width, height, unpack, bitmap); - if (bitmap == NULL) -return GL_TRUE;/* even though this is an error, we're done */ - } - - /* Convert the A1 bitmap to an A8 format suitable for glTexImage */ - a8_bitmap = calloc(1, width * height); - _mesa_expand_bitmap(width, height, unpack, bitmap, a8_bitmap, width, 0xff); - - if (_mesa_is_bufferobj(unpack-BufferObj)) { - /* done with PBO so unmap it now */ - ctx-Driver.UnmapBuffer(ctx, GL_PIXEL_UNPACK_BUFFER_EXT, - unpack-BufferObj); - } - - /* Save GL state before we start setting up our drawing */ - _mesa_PushAttrib(GL_ENABLE_BIT | GL_CURRENT_BIT | GL_POLYGON_BIT | -GL_TEXTURE_BIT | GL_VIEWPORT_BIT); - _mesa_PushClientAttrib(GL_CLIENT_VERTEX_ARRAY_BIT | - GL_CLIENT_PIXEL_STORE_BIT); - old_active_texture = ctx-Texture.CurrentUnit; - - _mesa_Disable(GL_POLYGON_STIPPLE); - _mesa_PolygonMode(GL_FRONT_AND_BACK, GL_FILL); - - /* Upload our bitmap data to an alpha texture */ - _mesa_ActiveTextureARB(GL_TEXTURE0_ARB); - _mesa_Enable(GL_TEXTURE_2D); - _mesa_GenTextures(1, texname); - _mesa_BindTexture(GL_TEXTURE_2D, texname); - _mesa_TexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); -
Mesa (master): unichrome: Mostly revert my convolution removal changes.
Module: Mesa Branch: master Commit: f9e6f401e1c3b0a9caeb09f4c14eaea48dd91d06 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f9e6f401e1c3b0a9caeb09f4c14eaea48dd91d06 Author: Eric Anholt e...@anholt.net Date: Thu Sep 23 16:19:18 2010 -0700 unichrome: Mostly revert my convolution removal changes. For this driver, the minimum pitch alignment stuff does appear to be necessary, so leave the separate munged width/height variable in place. --- src/mesa/drivers/dri/unichrome/via_tex.c | 16 +--- 1 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/mesa/drivers/dri/unichrome/via_tex.c b/src/mesa/drivers/dri/unichrome/via_tex.c index 01cb3eb..9ae9466 100644 --- a/src/mesa/drivers/dri/unichrome/via_tex.c +++ b/src/mesa/drivers/dri/unichrome/via_tex.c @@ -663,6 +663,8 @@ static void viaTexImage(GLcontext *ctx, struct gl_texture_image *texImage) { struct via_context *vmesa = VIA_CONTEXT(ctx); + GLint postConvWidth = width; + GLint postConvHeight = height; GLint texelBytes, sizeInBytes; struct via_texture_object *viaObj = (struct via_texture_object *)texObj; struct via_texture_image *viaImage = (struct via_texture_image *)texImage; @@ -682,13 +684,13 @@ static void viaTexImage(GLcontext *ctx, texelBytes = _mesa_get_format_bytes(texImage-TexFormat); /* Minimum pitch of 32 bytes */ - if (width * texelBytes 32) { - width = 32 / texelBytes; - texImage-RowStride = width; + if (postConvWidth * texelBytes 32) { + postConvWidth = 32 / texelBytes; + texImage-RowStride = postConvWidth; } - assert(texImage-RowStride == width); - viaImage-pitchLog2 = logbase2(width * texelBytes); + assert(texImage-RowStride == postConvWidth); + viaImage-pitchLog2 = logbase2(postConvWidth * texelBytes); /* allocate memory */ if (_mesa_is_format_compressed(texImage-TexFormat)) @@ -697,7 +699,7 @@ static void viaTexImage(GLcontext *ctx, texImage-Height, texImage-Depth); else - sizeInBytes = width * height * texelBytes; + sizeInBytes = postConvWidth * postConvHeight * texelBytes; /* Attempt to allocate texture memory directly, otherwise use main @@ -778,7 +780,7 @@ static void viaTexImage(GLcontext *ctx, dstRowStride = _mesa_format_row_stride(texImage-TexFormat, width); } else { - dstRowStride = width * _mesa_get_format_bytes(texImage-TexFormat); + dstRowStride = postConvWidth * _mesa_get_format_bytes(texImage-TexFormat); } success = _mesa_texstore(ctx, dims, texImage-_BaseFormat, ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): radeon: Remove copied minimum pitch alignment code.
Module: Mesa Branch: master Commit: 1c0646a826cb19d3c3eaa84591930590db6e8af8 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1c0646a826cb19d3c3eaa84591930590db6e8af8 Author: Eric Anholt e...@anholt.net Date: Thu Sep 23 16:13:50 2010 -0700 radeon: Remove copied minimum pitch alignment code. This is already covered by radeon_mipmap_tree.c, and my convolution cleanups broke in the presence of this code. Thanks to Marek Olšák for tracking down the relevant miptree code for me. --- src/mesa/drivers/dri/radeon/radeon_texture.c | 12 1 files changed, 0 insertions(+), 12 deletions(-) diff --git a/src/mesa/drivers/dri/radeon/radeon_texture.c b/src/mesa/drivers/dri/radeon/radeon_texture.c index bf30e0c..d1ebd83 100644 --- a/src/mesa/drivers/dri/radeon/radeon_texture.c +++ b/src/mesa/drivers/dri/radeon/radeon_texture.c @@ -792,18 +792,6 @@ static void radeon_teximage( t-validated = GL_FALSE; - if (!_mesa_is_format_compressed(texImage-TexFormat)) { - GLuint texelBytes = _mesa_get_format_bytes(texImage-TexFormat); - /* Minimum pitch of 32 bytes */ - if (width * texelBytes 32) { - width = 32 / texelBytes; - texImage-RowStride = width; - } - if (!image-mt) { - assert(texImage-RowStride == width); - } - } - /* Mesa core only clears texImage-Data but not image-mt */ radeonFreeTexImageData(ctx, texImage); ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): intel: Remove dead intelIsTextureResident().
Module: Mesa Branch: master Commit: 64ff468d6ff7645e4c0247a5135d71f380690873 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=64ff468d6ff7645e4c0247a5135d71f380690873 Author: Eric Anholt e...@anholt.net Date: Thu Sep 23 16:30:58 2010 -0700 intel: Remove dead intelIsTextureResident(). It always returned 1 (GL_TRUE), which is the same thing that happens when the driver hook isn't present. --- src/mesa/drivers/dri/intel/intel_tex.c | 18 -- 1 files changed, 0 insertions(+), 18 deletions(-) diff --git a/src/mesa/drivers/dri/intel/intel_tex.c b/src/mesa/drivers/dri/intel/intel_tex.c index 8bb6ae9..4537f58 100644 --- a/src/mesa/drivers/dri/intel/intel_tex.c +++ b/src/mesa/drivers/dri/intel/intel_tex.c @@ -9,23 +9,6 @@ #define FILE_DEBUG_FLAG DEBUG_TEXTURE -static GLboolean -intelIsTextureResident(GLcontext * ctx, struct gl_texture_object *texObj) -{ -#if 0 - struct intel_context *intel = intel_context(ctx); - struct intel_texture_object *intelObj = intel_texture_object(texObj); - - return - intelObj-mt - intelObj-mt-region - intel_is_region_resident(intel, intelObj-mt-region); -#endif - return 1; -} - - - static struct gl_texture_image * intelNewTextureImage(GLcontext * ctx) { @@ -217,7 +200,6 @@ intelInitTextureFuncs(struct dd_function_table *functions) functions-DeleteTexture = intelDeleteTextureObject; functions-FreeTexImageData = intelFreeTextureImageData; functions-UpdateTexturePalette = 0; - functions-IsTextureResident = intelIsTextureResident; #if DO_DEBUG !defined(__ia64__) if (INTEL_DEBUG DEBUG_BUFMGR) ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): i915: Remove a dead if (0) block.
Module: Mesa Branch: master Commit: f46523e0bcdfe447b4a9a35fe1561490fa32c3f0 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f46523e0bcdfe447b4a9a35fe1561490fa32c3f0 Author: Eric Anholt e...@anholt.net Date: Thu Sep 23 16:34:10 2010 -0700 i915: Remove a dead if (0) block. --- src/mesa/drivers/dri/i915/i915_context.c |3 --- 1 files changed, 0 insertions(+), 3 deletions(-) diff --git a/src/mesa/drivers/dri/i915/i915_context.c b/src/mesa/drivers/dri/i915/i915_context.c index 450e66e..bf6762d 100644 --- a/src/mesa/drivers/dri/i915/i915_context.c +++ b/src/mesa/drivers/dri/i915/i915_context.c @@ -108,9 +108,6 @@ i915CreateContext(int api, if (!i915) return GL_FALSE; - if (0) - printf(\ntexmem-0-3 branch\n\n); - i915InitVtbl(i915); i915InitDriverFunctions(functions); ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): r300g: fixup long-lived BO maps being incorrectly unmapped when flushing
Module: Mesa Branch: master Commit: 206d92912cfd1ac73233d9c027fa590b60270cb8 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=206d92912cfd1ac73233d9c027fa590b60270cb8 Author: Marek Olšák mar...@gmail.com Date: Thu Sep 23 13:59:42 2010 +0200 r300g: fixup long-lived BO maps being incorrectly unmapped when flushing Based on commit 3ddc714b20ac4e28b80c6f88d1993445fff2262c by Dave Airlie. NOTE: This is a candidate for the 7.9 branch. --- src/gallium/winsys/radeon/drm/radeon_drm_buffer.c | 14 ++ 1 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_buffer.c b/src/gallium/winsys/radeon/drm/radeon_drm_buffer.c index cf66524..075ab5c 100644 --- a/src/gallium/winsys/radeon/drm/radeon_drm_buffer.c +++ b/src/gallium/winsys/radeon/drm/radeon_drm_buffer.c @@ -118,8 +118,10 @@ radeon_drm_buffer_map_internal(struct pb_buffer *_buf, return NULL; } -if (buf-bo-ptr != NULL) +if (buf-bo-ptr != NULL) { +remove_from_list(buf); return buf-bo-ptr; +} if (flags PB_USAGE_DONTBLOCK) { uint32_t domain; @@ -142,14 +144,18 @@ radeon_drm_buffer_map_internal(struct pb_buffer *_buf, if (radeon_bo_map(buf-bo, write)) { return NULL; } -insert_at_tail(buf-mgr-buffer_map_list, buf); + +remove_from_list(buf); return buf-bo-ptr; } static void radeon_drm_buffer_unmap_internal(struct pb_buffer *_buf) { -(void)_buf; +struct radeon_drm_buffer *buf = radeon_drm_buffer(_buf); +if (is_empty_list(buf)) { /* = is not inserted... */ +insert_at_tail(buf-mgr-buffer_map_list, buf); +} } static void @@ -163,7 +169,7 @@ radeon_drm_buffer_get_base_buffer(struct pb_buffer *buf, static enum pipe_error -radeon_drm_buffer_validate(struct pb_buffer *_buf, +radeon_drm_buffer_validate(struct pb_buffer *_buf, struct pb_validate *vl, unsigned flags) { ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): util: make calling remove_from_list multiple times in a row safe
Module: Mesa Branch: master Commit: 68afbe89c72d085dcbbf2b264f0201ab73fe339e URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=68afbe89c72d085dcbbf2b264f0201ab73fe339e Author: Marek Olšák mar...@gmail.com Date: Thu Sep 23 20:39:27 2010 +0200 util: make calling remove_from_list multiple times in a row safe This commit fixes an infinite loop in foreach_s if remove_from_list is used more than once on the same item with other list operations in between. NOTE: This is a candidate for the 7.9 branch because the commit r300g: fixup long-lived BO maps being incorrectly unmapped when flushing depends on it. --- src/gallium/auxiliary/util/u_simple_list.h |2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/src/gallium/auxiliary/util/u_simple_list.h b/src/gallium/auxiliary/util/u_simple_list.h index f5f43b0..fe59771 100644 --- a/src/gallium/auxiliary/util/u_simple_list.h +++ b/src/gallium/auxiliary/util/u_simple_list.h @@ -46,6 +46,8 @@ do { \ (elem)-next-prev = (elem)-prev; \ (elem)-prev-next = (elem)-next; \ + (elem)-next = elem; \ + (elem)-prev = elem; \ } while (0) /** ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): r300g: make accessing map_list and buffer_handles thread-safe
Module: Mesa Branch: master Commit: a333485386c66672fc34813c77c1400516c56ee5 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a333485386c66672fc34813c77c1400516c56ee5 Author: Marek Olšák mar...@gmail.com Date: Thu Sep 23 14:24:52 2010 +0200 r300g: make accessing map_list and buffer_handles thread-safe NOTE: This is a candidate for the 7.9 branch. --- src/gallium/winsys/radeon/drm/radeon_drm_buffer.c | 64 +++-- 1 files changed, 58 insertions(+), 6 deletions(-) diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_buffer.c b/src/gallium/winsys/radeon/drm/radeon_drm_buffer.c index 075ab5c..7872394 100644 --- a/src/gallium/winsys/radeon/drm/radeon_drm_buffer.c +++ b/src/gallium/winsys/radeon/drm/radeon_drm_buffer.c @@ -11,8 +11,10 @@ #include util/u_simple_list.h #include pipebuffer/pb_buffer.h #include pipebuffer/pb_bufmgr.h +#include os/os_thread.h #include radeon_winsys.h + struct radeon_drm_bufmgr; struct radeon_drm_buffer { @@ -39,10 +41,19 @@ radeon_drm_buffer(struct pb_buffer *buf) } struct radeon_drm_bufmgr { +/* Base class. */ struct pb_manager base; + +/* Winsys. */ struct radeon_libdrm_winsys *rws; + +/* List of mapped buffers and its mutex. */ struct radeon_drm_buffer buffer_map_list; +pipe_mutex buffer_map_list_mutex; + +/* List of buffer handles and its mutex. */ struct util_hash_table *buffer_handles; +pipe_mutex buffer_handles_mutex; }; static INLINE struct radeon_drm_bufmgr * @@ -59,14 +70,21 @@ radeon_drm_buffer_destroy(struct pb_buffer *_buf) int name; if (buf-bo-ptr != NULL) { - remove_from_list(buf); - radeon_bo_unmap(buf-bo); - buf-bo-ptr = NULL; +pipe_mutex_lock(buf-mgr-buffer_map_list_mutex); +/* Now test it again inside the mutex. */ +if (buf-bo-ptr != NULL) { +remove_from_list(buf); +radeon_bo_unmap(buf-bo); +buf-bo-ptr = NULL; +} +pipe_mutex_unlock(buf-mgr-buffer_map_list_mutex); } name = radeon_gem_name_bo(buf-bo); if (name) { +pipe_mutex_lock(buf-mgr-buffer_handles_mutex); util_hash_table_remove(buf-mgr-buffer_handles, (void*)(uintptr_t)name); +pipe_mutex_unlock(buf-mgr-buffer_handles_mutex); } radeon_bo_unref(buf-bo); @@ -119,7 +137,13 @@ radeon_drm_buffer_map_internal(struct pb_buffer *_buf, } if (buf-bo-ptr != NULL) { -remove_from_list(buf); +pipe_mutex_lock(buf-mgr-buffer_map_list_mutex); +/* Now test ptr again inside the mutex. We might have gotten a race + * during the first test. */ +if (buf-bo-ptr != NULL) { +remove_from_list(buf); +} +pipe_mutex_unlock(buf-mgr-buffer_map_list_mutex); return buf-bo-ptr; } @@ -145,7 +169,9 @@ radeon_drm_buffer_map_internal(struct pb_buffer *_buf, return NULL; } +pipe_mutex_lock(buf-mgr-buffer_map_list_mutex); remove_from_list(buf); +pipe_mutex_unlock(buf-mgr-buffer_map_list_mutex); return buf-bo-ptr; } @@ -153,9 +179,11 @@ static void radeon_drm_buffer_unmap_internal(struct pb_buffer *_buf) { struct radeon_drm_buffer *buf = radeon_drm_buffer(_buf); +pipe_mutex_lock(buf-mgr-buffer_map_list_mutex); if (is_empty_list(buf)) { /* = is not inserted... */ insert_at_tail(buf-mgr-buffer_map_list, buf); } +pipe_mutex_unlock(buf-mgr-buffer_map_list_mutex); } static void @@ -192,8 +220,9 @@ const struct pb_vtbl radeon_drm_buffer_vtbl = { radeon_drm_buffer_get_base_buffer, }; -struct pb_buffer *radeon_drm_bufmgr_create_buffer_from_handle(struct pb_manager *_mgr, - uint32_t handle) +static struct pb_buffer * +radeon_drm_bufmgr_create_buffer_from_handle_unsafe(struct pb_manager *_mgr, + uint32_t handle) { struct radeon_drm_bufmgr *mgr = radeon_drm_bufmgr(_mgr); struct radeon_libdrm_winsys *rws = mgr-rws; @@ -201,6 +230,7 @@ struct pb_buffer *radeon_drm_bufmgr_create_buffer_from_handle(struct pb_manager struct radeon_bo *bo; buf = util_hash_table_get(mgr-buffer_handles, (void*)(uintptr_t)handle); + if (buf) { struct pb_buffer *b = NULL; pb_reference(b, buf-base); @@ -234,6 +264,20 @@ struct pb_buffer *radeon_drm_bufmgr_create_buffer_from_handle(struct pb_manager return buf-base; } +struct pb_buffer * +radeon_drm_bufmgr_create_buffer_from_handle(struct pb_manager *_mgr, +uint32_t handle) +{ +struct radeon_drm_bufmgr *mgr = radeon_drm_bufmgr(_mgr); +struct pb_buffer *pb; + +pipe_mutex_lock(mgr-buffer_handles_mutex); +pb = radeon_drm_bufmgr_create_buffer_from_handle_unsafe(_mgr, handle); +pipe_mutex_unlock(mgr-buffer_handles_mutex); + +return pb; +} + static struct
Mesa (master): r300g: fix a copy-paste typo for logging
Module: Mesa Branch: master Commit: 7d28ec8500fc08fafbdb3ae5443b32dd756eddd7 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7d28ec8500fc08fafbdb3ae5443b32dd756eddd7 Author: Marek Olšák mar...@gmail.com Date: Thu Sep 23 22:53:10 2010 +0200 r300g: fix a copy-paste typo for logging --- src/gallium/drivers/r300/r300_texture_desc.c |6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/r300/r300_texture_desc.c b/src/gallium/drivers/r300/r300_texture_desc.c index 112282a..20d1fda 100644 --- a/src/gallium/drivers/r300/r300_texture_desc.c +++ b/src/gallium/drivers/r300/r300_texture_desc.c @@ -444,10 +444,10 @@ boolean r300_texture_desc_init(struct r300_screen *rscreen, if (max_buffer_size) { /* Make sure the buffer we got is large enough. */ if (desc-size_in_bytes max_buffer_size) { -fprintf(stderr, r300: texture_from_handle: The buffer is not +fprintf(stderr, r300: texture_desc_init: The buffer is not large enough. Got: %i, Need: %i, Info:\n, max_buffer_size, desc-size_in_bytes); -r300_tex_print_info(rscreen, desc, texture_from_handle); +r300_tex_print_info(rscreen, desc, texture_desc_init); return FALSE; } @@ -457,7 +457,7 @@ boolean r300_texture_desc_init(struct r300_screen *rscreen, } if (SCREEN_DBG_ON(rscreen, DBG_TEX)) -r300_tex_print_info(rscreen, desc, texture_from_handle); +r300_tex_print_info(rscreen, desc, texture_desc_init); return TRUE; } ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): r300g: fix the border color for every format other than PIPE_FORMAT_B8G8R8A8
Module: Mesa Branch: master Commit: 9f35dcd24cb520af5e39501672a3324000cdbfce URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9f35dcd24cb520af5e39501672a3324000cdbfce Author: Marek Olšák mar...@gmail.com Date: Thu Sep 23 22:56:50 2010 +0200 r300g: fix the border color for every format other than PIPE_FORMAT_B8G8R8A8 TX_BORDER_COLOR should be formatted according to the texture format. Also the interaction with ARB_texture_swizzle should be fixed too. NOTE: This is a candidate for the 7.9 branch. --- src/gallium/drivers/r300/r300_context.h |1 - src/gallium/drivers/r300/r300_state.c |4 - src/gallium/drivers/r300/r300_state_derived.c | 85 - 3 files changed, 84 insertions(+), 6 deletions(-) diff --git a/src/gallium/drivers/r300/r300_context.h b/src/gallium/drivers/r300/r300_context.h index 7f655db..8f4e2de 100644 --- a/src/gallium/drivers/r300/r300_context.h +++ b/src/gallium/drivers/r300/r300_context.h @@ -162,7 +162,6 @@ struct r300_sampler_state { uint32_t filter0; /* R300_TX_FILTER0: 0x4400 */ uint32_t filter1; /* R300_TX_FILTER1: 0x4440 */ -uint32_t border_color; /* R300_TX_BORDER_COLOR: 0x45c0 */ /* Min/max LOD must be clamped to [0, last_level], thus * it's dependent on a currently bound texture */ diff --git a/src/gallium/drivers/r300/r300_state.c b/src/gallium/drivers/r300/r300_state.c index d6cded9..ad3282a 100644 --- a/src/gallium/drivers/r300/r300_state.c +++ b/src/gallium/drivers/r300/r300_state.c @@ -1169,7 +1169,6 @@ static void* struct r300_sampler_state* sampler = CALLOC_STRUCT(r300_sampler_state); boolean is_r500 = r300-screen-caps.is_r500; int lod_bias; -union util_color uc; sampler-state = *state; @@ -1226,9 +1225,6 @@ static void* sampler-filter1 |= r500_anisotropy(state-max_anisotropy); } -util_pack_color(state-border_color, PIPE_FORMAT_B8G8R8A8_UNORM, uc); -sampler-border_color = uc.ui; - /* R500-specific fixups and optimizations */ if (r300-screen-caps.is_r500) { sampler-filter1 |= R500_BORDER_FIX; diff --git a/src/gallium/drivers/r300/r300_state_derived.c b/src/gallium/drivers/r300/r300_state_derived.c index f9a5168..566a828 100644 --- a/src/gallium/drivers/r300/r300_state_derived.c +++ b/src/gallium/drivers/r300/r300_state_derived.c @@ -567,6 +567,85 @@ static void r300_update_rs_block(struct r300_context *r300) } } +static uint32_t r300_get_border_color(enum pipe_format format, + const unsigned char swizzle_view[4], + const float border[4]) +{ +const struct util_format_description *desc; +unsigned char swizzle[4]; +unsigned i; +float border_swizzled[4]; +uint32_t r; + +desc = util_format_description(format); + +/* Combine the swizzles. */ +for (i = 0; i 4; i++) { +swizzle[i] = swizzle_view[i] = UTIL_FORMAT_SWIZZLE_W ? + desc-swizzle[swizzle_view[i]] : swizzle_view[i]; +} + +/* Apply swizzling. */ +for (i = 0; i 4; i++) { +switch (swizzle[i]) { +case UTIL_FORMAT_SWIZZLE_X: +border_swizzled[i] = border[0]; +break; +case UTIL_FORMAT_SWIZZLE_Y: +border_swizzled[i] = border[1]; +break; +case UTIL_FORMAT_SWIZZLE_Z: +border_swizzled[i] = border[2]; +break; +case UTIL_FORMAT_SWIZZLE_W: +border_swizzled[i] = border[3]; +break; +case UTIL_FORMAT_SWIZZLE_0: +border_swizzled[i] = 0; +break; +default: /* 1, NONE */ +border_swizzled[i] = 1; +} +} + +/* We don't use util_pack_format because it does not handle the formats + * we want, e.g. R4G4B4A4 is non-existent in Gallium. */ +switch (desc-channel[0].size) { +case 4: +r = ((float_to_ubyte(border_swizzled[0]) 0xf0) 4) | +((float_to_ubyte(border_swizzled[1]) 0xf0) 0) | +((float_to_ubyte(border_swizzled[2]) 0xf0) 4) | +((float_to_ubyte(border_swizzled[3]) 0xf0) 8); +break; + +case 5: +if (desc-channel[1].size == 5) { +r = ((float_to_ubyte(border_swizzled[0]) 0xf8) 3) | +((float_to_ubyte(border_swizzled[1]) 0xf8) 2) | +((float_to_ubyte(border_swizzled[2]) 0xf8) 7) | +((float_to_ubyte(border_swizzled[3]) 0x80) 8); +} else if (desc-channel[1].size == 6) { +r = ((float_to_ubyte(border_swizzled[0]) 0xf8) 3) | +((float_to_ubyte(border_swizzled[1]) 0xfc) 3) | +((float_to_ubyte(border_swizzled[2]) 0xf8) 8); +} else { +assert(0); +} +
Mesa (master): Build r300g by default
Module: Mesa Branch: master Commit: 85a45dcd5d2a6d4ba5ab414d4e7d4285ac998385 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=85a45dcd5d2a6d4ba5ab414d4e7d4285ac998385 Author: Marek Olšák mar...@gmail.com Date: Thu Sep 23 21:50:43 2010 +0200 Build r300g by default NOTE: This will go to 7.9 as well. --- configure.ac |6 ++ 1 files changed, 2 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac index cf743ba..2b8296d 100644 --- a/configure.ac +++ b/configure.ac @@ -1521,18 +1521,16 @@ elif test x$enable_gallium_i965 = xauto; then fi dnl -dnl Gallium Radeon configuration +dnl Gallium Radeon r300g configuration dnl AC_ARG_ENABLE([gallium-radeon], [AS_HELP_STRING([--enable-gallium-radeon], [build gallium radeon @:@default=disabled@:@])], [enable_gallium_radeon=$enableval], [enable_gallium_radeon=auto]) -if test x$enable_gallium_radeon = xyes; then +if test x$enable_gallium_radeon = xyes || test x$enable_gallium_radeon = xauto; then GALLIUM_DRIVERS_DIRS=$GALLIUM_DRIVERS_DIRS r300 gallium_check_st radeon/drm dri-r300 xorg-radeon -elif test x$enable_gallium_radeon = xauto; then -GALLIUM_DRIVERS_DIRS=$GALLIUM_DRIVERS_DIRS r300 fi dnl ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): r600g: add vert support for 16/16 and 16/16/16 floats.
Module: Mesa Branch: master Commit: 4388087f199f020e15024c908ba840a250cf29e1 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4388087f199f020e15024c908ba840a250cf29e1 Author: Dave Airlie airl...@redhat.com Date: Thu Sep 23 20:45:01 2010 +1000 r600g: add vert support for 16/16 and 16/16/16 floats. makes draw-vertices-half-float pass --- src/gallium/drivers/r600/r600_state_inlines.h |3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/src/gallium/drivers/r600/r600_state_inlines.h b/src/gallium/drivers/r600/r600_state_inlines.h index 283f1e5..3a2c08d 100644 --- a/src/gallium/drivers/r600/r600_state_inlines.h +++ b/src/gallium/drivers/r600/r600_state_inlines.h @@ -400,6 +400,9 @@ static INLINE uint32_t r600_translate_colorformat(enum pipe_format format) case PIPE_FORMAT_R32_FLOAT: return V_0280A0_COLOR_32_FLOAT; + case PIPE_FORMAT_R16G16_FLOAT: + case PIPE_FORMAT_R16G16B16_FLOAT: + return V_0280A0_COLOR_16_16_16_16_FLOAT; /* 64-bit buffers. */ case PIPE_FORMAT_R16G16B16A16_UNORM: ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): r600g: add some more vertex format support.
Module: Mesa Branch: master Commit: b7ab9ee84e4e4ff48b335c74c110d82e48bee4a5 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b7ab9ee84e4e4ff48b335c74c110d82e48bee4a5 Author: Dave Airlie airl...@redhat.com Date: Fri Sep 24 09:50:48 2010 +1000 r600g: add some more vertex format support. adds the sscaled formats, this passes some more of the draw-vertices tests. --- src/gallium/drivers/r600/eg_hw_states.c | 12 ++-- src/gallium/drivers/r600/eg_state_inlines.h | 33 ++ src/gallium/drivers/r600/evergreend.h |3 ++ src/gallium/drivers/r600/r600_draw.c |3 +- src/gallium/drivers/r600/r600_hw_states.c | 12 ++-- src/gallium/drivers/r600/r600_state_inlines.h | 37 +++-- src/gallium/drivers/r600/r600d.h |3 ++ 7 files changed, 92 insertions(+), 11 deletions(-) diff --git a/src/gallium/drivers/r600/eg_hw_states.c b/src/gallium/drivers/r600/eg_hw_states.c index 42b4900..77ac444 100644 --- a/src/gallium/drivers/r600/eg_hw_states.c +++ b/src/gallium/drivers/r600/eg_hw_states.c @@ -849,19 +849,25 @@ static void eg_init_config(struct r600_context *rctx) } static int eg_vs_resource(struct r600_context *rctx, int id, struct r600_resource *rbuffer, uint32_t offset, - uint32_t stride, uint32_t format) + uint32_t stride, uint32_t src_format) { struct radeon_state *vs_resource = rctx-vs_resource[id]; struct r600_screen *rscreen = rctx-screen; + unsigned format, num_format = 0, format_comp = 0; + + format = r600_translate_colorformat(src_format); + r600_translate_vertex_num_format(src_format, num_format, format_comp); + format = S_030008_DATA_FORMAT(format) | S_030008_NUM_FORMAT_ALL(num_format) | + S_030008_FORMAT_COMP_ALL(format_comp); + radeon_state_init(vs_resource, rscreen-rw, R600_STATE_RESOURCE, id, R600_SHADER_VS); radeon_ws_bo_reference(rscreen-rw, vs_resource-bo[0], rbuffer-bo); vs_resource-nbo = 1; vs_resource-states[EG_PS_RESOURCE__RESOURCE0_WORD0] = offset; vs_resource-states[EG_PS_RESOURCE__RESOURCE0_WORD1] = rbuffer-size - offset - 1; - vs_resource-states[EG_PS_RESOURCE__RESOURCE0_WORD2] = S_030008_STRIDE(stride) | - S_030008_DATA_FORMAT(format); + vs_resource-states[EG_PS_RESOURCE__RESOURCE0_WORD2] = S_030008_STRIDE(stride) | format; vs_resource-states[EG_PS_RESOURCE__RESOURCE0_WORD3] = S_03000C_DST_SEL_X(V_03000C_SQ_SEL_X) | S_03000C_DST_SEL_Y(V_03000C_SQ_SEL_Y) | S_03000C_DST_SEL_Z(V_03000C_SQ_SEL_Z) | diff --git a/src/gallium/drivers/r600/eg_state_inlines.h b/src/gallium/drivers/r600/eg_state_inlines.h index 0a42abc..d9897e0 100644 --- a/src/gallium/drivers/r600/eg_state_inlines.h +++ b/src/gallium/drivers/r600/eg_state_inlines.h @@ -400,7 +400,18 @@ static INLINE uint32_t r600_translate_colorformat(enum pipe_format format) case PIPE_FORMAT_R32_FLOAT: return V_028C70_COLOR_32_FLOAT; + case PIPE_FORMAT_R16G16_FLOAT: + return V_028C70_COLOR_16_16_FLOAT; + + case PIPE_FORMAT_R16G16_SSCALED: + return V_028C70_COLOR_16_16; + + case PIPE_FORMAT_R16G16B16_FLOAT: + return V_028C70_COLOR_16_16_16_16_FLOAT; + /* 64-bit buffers. */ + case PIPE_FORMAT_R16G16B16A16_SSCALED: + case PIPE_FORMAT_R16G16B16_SSCALED: case PIPE_FORMAT_R16G16B16A16_UNORM: case PIPE_FORMAT_R16G16B16A16_SNORM: return V_028C70_COLOR_16_16_16_16; @@ -409,6 +420,9 @@ static INLINE uint32_t r600_translate_colorformat(enum pipe_format format) case PIPE_FORMAT_R32G32_FLOAT: return V_028C70_COLOR_32_32_FLOAT; + case PIPE_FORMAT_R32G32_SSCALED: + return V_028C70_COLOR_32_32; + /* 128-bit buffers. */ case PIPE_FORMAT_R32G32B32_FLOAT: return V_028C70_COLOR_32_32_32_FLOAT; @@ -424,6 +438,25 @@ static INLINE uint32_t r600_translate_colorformat(enum pipe_format format) } } +static INLINE void r600_translate_vertex_num_format(enum pipe_format format, uint32_t *num_format_p, + uint32_t *format_comp_p) +{ + uint32_t num_format = 0, format_comp = 0; + switch (format) { + case PIPE_FORMAT_R16G16B16A16_SSCALED: + case PIPE_FORMAT_R16G16B16_SSCALED: + case PIPE_FORMAT_R16G16_SSCALED: + case PIPE_FORMAT_R32G32_SSCALED: + num_format = V_030008_SQ_NUM_FORMAT_SCALED; + format_comp = 1; + break; + default: + break; + } + *num_format_p = num_format; + *format_comp_p = format_comp; +} + static INLINE boolean r600_is_sampler_format_supported(enum pipe_format format) { return
Mesa (master): r600g: some more vertex formats
Module: Mesa Branch: master Commit: 95e04c3d74aef91bde8653bddc4b0013b68fedd1 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=95e04c3d74aef91bde8653bddc4b0013b68fedd1 Author: Dave Airlie airl...@redhat.com Date: Fri Sep 24 10:47:14 2010 +1000 r600g: some more vertex formats --- src/gallium/drivers/r600/eg_state_inlines.h |6 +++--- src/gallium/drivers/r600/r600_state_inlines.h |9 - 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/r600/eg_state_inlines.h b/src/gallium/drivers/r600/eg_state_inlines.h index d9897e0..4723aee 100644 --- a/src/gallium/drivers/r600/eg_state_inlines.h +++ b/src/gallium/drivers/r600/eg_state_inlines.h @@ -406,17 +406,17 @@ static INLINE uint32_t r600_translate_colorformat(enum pipe_format format) case PIPE_FORMAT_R16G16_SSCALED: return V_028C70_COLOR_16_16; - case PIPE_FORMAT_R16G16B16_FLOAT: - return V_028C70_COLOR_16_16_16_16_FLOAT; - /* 64-bit buffers. */ case PIPE_FORMAT_R16G16B16A16_SSCALED: case PIPE_FORMAT_R16G16B16_SSCALED: case PIPE_FORMAT_R16G16B16A16_UNORM: case PIPE_FORMAT_R16G16B16A16_SNORM: return V_028C70_COLOR_16_16_16_16; + + case PIPE_FORMAT_R16G16B16_FLOAT: case PIPE_FORMAT_R16G16B16A16_FLOAT: return V_028C70_COLOR_16_16_16_16_FLOAT; + case PIPE_FORMAT_R32G32_FLOAT: return V_028C70_COLOR_32_32_FLOAT; diff --git a/src/gallium/drivers/r600/r600_state_inlines.h b/src/gallium/drivers/r600/r600_state_inlines.h index 1337d8e..663529f 100644 --- a/src/gallium/drivers/r600/r600_state_inlines.h +++ b/src/gallium/drivers/r600/r600_state_inlines.h @@ -409,6 +409,8 @@ static INLINE uint32_t r600_translate_colorformat(enum pipe_format format) /* 64-bit buffers. */ + case PIPE_FORMAT_R16G16B16_USCALED: + case PIPE_FORMAT_R16G16B16A16_USCALED: case PIPE_FORMAT_R16G16B16_SSCALED: case PIPE_FORMAT_R16G16B16A16_SSCALED: case PIPE_FORMAT_R16G16B16A16_UNORM: @@ -422,6 +424,7 @@ static INLINE uint32_t r600_translate_colorformat(enum pipe_format format) case PIPE_FORMAT_R32G32_FLOAT: return V_0280A0_COLOR_32_32_FLOAT; + case PIPE_FORMAT_R32G32_USCALED: case PIPE_FORMAT_R32G32_SSCALED: return V_0280A0_COLOR_32_32; @@ -449,8 +452,12 @@ static INLINE void r600_translate_vertex_num_format(enum pipe_format format, uin case PIPE_FORMAT_R16G16B16_SSCALED: case PIPE_FORMAT_R16G16_SSCALED: case PIPE_FORMAT_R32G32_SSCALED: - num_format = V_038008_SQ_NUM_FORMAT_SCALED; format_comp = 1; + case PIPE_FORMAT_R16G16B16A16_USCALED: + case PIPE_FORMAT_R16G16B16_USCALED: + case PIPE_FORMAT_R16G16_USCALED: + case PIPE_FORMAT_R32G32_USCALED: + num_format = V_038008_SQ_NUM_FORMAT_SCALED; break; default: break; ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): r600g: fix draw-elements and draw-elements-base-vertex
Module: Mesa Branch: master Commit: cf0162be138cb424f47a8fa75e4645e2319c7ddf URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=cf0162be138cb424f47a8fa75e4645e2319c7ddf Author: Dave Airlie airl...@redhat.com Date: Fri Sep 24 12:32:45 2010 +1000 r600g: fix draw-elements and draw-elements-base-vertex --- src/gallium/drivers/r600/r600_context.h |1 + src/gallium/drivers/r600/r600_draw.c | 11 ++- src/gallium/drivers/r600/r600_hw_states.c |2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/gallium/drivers/r600/r600_context.h b/src/gallium/drivers/r600/r600_context.h index 8778f23..c15e643 100644 --- a/src/gallium/drivers/r600/r600_context.h +++ b/src/gallium/drivers/r600/r600_context.h @@ -129,6 +129,7 @@ struct r600_draw { struct pipe_resource*index_buffer; unsignedindex_buffer_offset; unsignedmin_index, max_index; + unsignedindex_bias; }; struct r600_context_hw_states { diff --git a/src/gallium/drivers/r600/r600_draw.c b/src/gallium/drivers/r600/r600_draw.c index 0fa48ae..4978a3c 100644 --- a/src/gallium/drivers/r600/r600_draw.c +++ b/src/gallium/drivers/r600/r600_draw.c @@ -149,8 +149,6 @@ void r600_draw_vbo(struct pipe_context *ctx, const struct pipe_draw_info *info) struct r600_draw draw; int r; - assert(info-index_bias == 0); - memset(draw, 0, sizeof(draw)); if (rctx-any_user_vbs) { @@ -166,16 +164,17 @@ void r600_draw_vbo(struct pipe_context *ctx, const struct pipe_draw_info *info) draw.start += rctx-index_buffer.offset / rctx-index_buffer.index_size; draw.min_index = info-min_index; draw.max_index = info-max_index; + draw.index_bias = info-index_bias; r600_translate_index_buffer(rctx, rctx-index_buffer.buffer, rctx-index_buffer.index_size, - rctx-index_buffer.offset, draw.start, + 0, draw.start, info-count); draw.index_size = rctx-index_buffer.index_size; draw.index_buffer = rctx-index_buffer.buffer; - draw.index_buffer_offset = rctx-index_buffer.offset; - + draw.index_buffer_offset = draw.start * draw.index_size; + draw.start = 0; r600_upload_index_buffer(rctx, draw); } else { @@ -184,7 +183,9 @@ void r600_draw_vbo(struct pipe_context *ctx, const struct pipe_draw_info *info) draw.min_index = 0; draw.max_index = 0xff; draw.index_buffer_offset = 0; + draw.index_bias = draw.start; } + r = r600_draw_common(draw); if (r) fprintf(stderr,draw common failed %d\n, r); diff --git a/src/gallium/drivers/r600/r600_hw_states.c b/src/gallium/drivers/r600/r600_hw_states.c index 9e54c6a..1e9c5ff 100644 --- a/src/gallium/drivers/r600/r600_hw_states.c +++ b/src/gallium/drivers/r600/r600_hw_states.c @@ -983,7 +983,7 @@ static int r600_draw_vgt_prim(struct r600_draw *draw, draw-vgt.states[R600_VGT__VGT_PRIMITIVE_TYPE] = prim; draw-vgt.states[R600_VGT__VGT_MAX_VTX_INDX] = draw-max_index; draw-vgt.states[R600_VGT__VGT_MIN_VTX_INDX] = draw-min_index; - draw-vgt.states[R600_VGT__VGT_INDX_OFFSET] = draw-start; + draw-vgt.states[R600_VGT__VGT_INDX_OFFSET] = draw-index_bias; draw-vgt.states[R600_VGT__VGT_MULTI_PRIM_IB_RESET_INDX] = 0x; draw-vgt.states[R600_VGT__VGT_DMA_INDEX_TYPE] = vgt_dma_index_type; draw-vgt.states[R600_VGT__VGT_PRIMITIVEID_EN] = 0x; ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): r600g: drop index_offset parameter to index buffer translate .
Module: Mesa Branch: master Commit: 4e27e935ca670d0cb1748e40a46a2357d4331a6f URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4e27e935ca670d0cb1748e40a46a2357d4331a6f Author: Dave Airlie airl...@redhat.com Date: Fri Sep 24 12:36:08 2010 +1000 r600g: drop index_offset parameter to index buffer translate. r600 doesn't need this as we always have working index bias --- src/gallium/drivers/r600/r600_draw.c | 30 +- 1 files changed, 13 insertions(+), 17 deletions(-) diff --git a/src/gallium/drivers/r600/r600_draw.c b/src/gallium/drivers/r600/r600_draw.c index 4978a3c..5b38946 100644 --- a/src/gallium/drivers/r600/r600_draw.c +++ b/src/gallium/drivers/r600/r600_draw.c @@ -40,29 +40,25 @@ static void r600_translate_index_buffer(struct r600_context *r600, struct pipe_resource **index_buffer, - unsigned *index_size, unsigned index_offset, + unsigned *index_size, unsigned *start, unsigned count) { switch (*index_size) { case 1: -util_shorten_ubyte_elts(r600-context, index_buffer, index_offset, *start, count); -*index_size = 2; -*start = 0; -break; + util_shorten_ubyte_elts(r600-context, index_buffer, 0, *start, count); + *index_size = 2; + *start = 0; + break; case 2: -if (*start % 2 != 0 || index_offset) { -util_rebuild_ushort_elts(r600-context, index_buffer, index_offset, *start, count); -*start = 0; -} -break; - + if (*start % 2 != 0) { + util_rebuild_ushort_elts(r600-context, index_buffer, 0, *start, count); + *start = 0; + } + break; + case 4: -if (index_offset) { -util_rebuild_uint_elts(r600-context, index_buffer, index_offset, *start, count); -*start = 0; -} -break; + break; } } @@ -168,7 +164,7 @@ void r600_draw_vbo(struct pipe_context *ctx, const struct pipe_draw_info *info) r600_translate_index_buffer(rctx, rctx-index_buffer.buffer, rctx-index_buffer.index_size, - 0, draw.start, + draw.start, info-count); draw.index_size = rctx-index_buffer.index_size; ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): r600g: fixup tex wrapping.
Module: Mesa Branch: master Commit: e74d26d82ab6e4b21c6220d8f599f69ab2acf01e URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e74d26d82ab6e4b21c6220d8f599f69ab2acf01e Author: Dave Airlie airl...@redhat.com Date: Fri Sep 24 13:44:48 2010 +1000 r600g: fixup tex wrapping. the clamp edge/clamp cases were reversed. --- src/gallium/drivers/r600/eg_state_inlines.h |8 src/gallium/drivers/r600/r600_state_inlines.h |8 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/gallium/drivers/r600/eg_state_inlines.h b/src/gallium/drivers/r600/eg_state_inlines.h index 4723aee..251e64a 100644 --- a/src/gallium/drivers/r600/eg_state_inlines.h +++ b/src/gallium/drivers/r600/eg_state_inlines.h @@ -136,17 +136,17 @@ static inline unsigned r600_tex_wrap(unsigned wrap) case PIPE_TEX_WRAP_REPEAT: return V_03C000_SQ_TEX_WRAP; case PIPE_TEX_WRAP_CLAMP: - return V_03C000_SQ_TEX_CLAMP_LAST_TEXEL; - case PIPE_TEX_WRAP_CLAMP_TO_EDGE: return V_03C000_SQ_TEX_CLAMP_HALF_BORDER; + case PIPE_TEX_WRAP_CLAMP_TO_EDGE: + return V_03C000_SQ_TEX_CLAMP_LAST_TEXEL; case PIPE_TEX_WRAP_CLAMP_TO_BORDER: return V_03C000_SQ_TEX_CLAMP_BORDER; case PIPE_TEX_WRAP_MIRROR_REPEAT: return V_03C000_SQ_TEX_MIRROR; case PIPE_TEX_WRAP_MIRROR_CLAMP: - return V_03C000_SQ_TEX_MIRROR_ONCE_LAST_TEXEL; - case PIPE_TEX_WRAP_MIRROR_CLAMP_TO_EDGE: return V_03C000_SQ_TEX_MIRROR_ONCE_HALF_BORDER; + case PIPE_TEX_WRAP_MIRROR_CLAMP_TO_EDGE: + return V_03C000_SQ_TEX_MIRROR_ONCE_LAST_TEXEL; case PIPE_TEX_WRAP_MIRROR_CLAMP_TO_BORDER: return V_03C000_SQ_TEX_MIRROR_ONCE_BORDER; } diff --git a/src/gallium/drivers/r600/r600_state_inlines.h b/src/gallium/drivers/r600/r600_state_inlines.h index 663529f..3be5248 100644 --- a/src/gallium/drivers/r600/r600_state_inlines.h +++ b/src/gallium/drivers/r600/r600_state_inlines.h @@ -136,17 +136,17 @@ static inline unsigned r600_tex_wrap(unsigned wrap) case PIPE_TEX_WRAP_REPEAT: return V_03C000_SQ_TEX_WRAP; case PIPE_TEX_WRAP_CLAMP: - return V_03C000_SQ_TEX_CLAMP_LAST_TEXEL; - case PIPE_TEX_WRAP_CLAMP_TO_EDGE: return V_03C000_SQ_TEX_CLAMP_HALF_BORDER; + case PIPE_TEX_WRAP_CLAMP_TO_EDGE: + return V_03C000_SQ_TEX_CLAMP_LAST_TEXEL; case PIPE_TEX_WRAP_CLAMP_TO_BORDER: return V_03C000_SQ_TEX_CLAMP_BORDER; case PIPE_TEX_WRAP_MIRROR_REPEAT: return V_03C000_SQ_TEX_MIRROR; case PIPE_TEX_WRAP_MIRROR_CLAMP: - return V_03C000_SQ_TEX_MIRROR_ONCE_LAST_TEXEL; - case PIPE_TEX_WRAP_MIRROR_CLAMP_TO_EDGE: return V_03C000_SQ_TEX_MIRROR_ONCE_HALF_BORDER; + case PIPE_TEX_WRAP_MIRROR_CLAMP_TO_EDGE: + return V_03C000_SQ_TEX_MIRROR_ONCE_LAST_TEXEL; case PIPE_TEX_WRAP_MIRROR_CLAMP_TO_BORDER: return V_03C000_SQ_TEX_MIRROR_ONCE_BORDER; } ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Mesa (master): r600g: fixup VP-FP output-input routing.
Module: Mesa Branch: master Commit: 59276b8541049a2d07d32fbb139fb14e21e387fc URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=59276b8541049a2d07d32fbb139fb14e21e387fc Author: Dave Airlie airl...@redhat.com Date: Fri Sep 24 14:58:15 2010 +1000 r600g: fixup VP-FP output-input routing. We need to map the TGSI semantics to each other using the hw semantic ids. this fixes glsl-kwin-blur and glsl-routing. --- src/gallium/drivers/r600/eg_hw_states.c |2 +- src/gallium/drivers/r600/r600_context.h |1 + src/gallium/drivers/r600/r600_hw_states.c |2 +- src/gallium/drivers/r600/r600_shader.c| 16 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/r600/eg_hw_states.c b/src/gallium/drivers/r600/eg_hw_states.c index 77ac444..47c15b8 100644 --- a/src/gallium/drivers/r600/eg_hw_states.c +++ b/src/gallium/drivers/r600/eg_hw_states.c @@ -934,7 +934,7 @@ static int eg_ps_shader(struct r600_context *rctx, struct r600_context_state *rp radeon_state_init(state, rscreen-rw, R600_STATE_SHADER, 0, R600_SHADER_PS); for (i = 0; i rshader-ninput; i++) { - tmp = S_028644_SEMANTIC(i); + tmp = S_028644_SEMANTIC(r600_find_vs_semantic_index(rctx, rshader, i)); tmp |= S_028644_SEL_CENTROID(1); if (rshader-input[i].name == TGSI_SEMANTIC_POSITION) have_pos = TRUE; diff --git a/src/gallium/drivers/r600/r600_context.h b/src/gallium/drivers/r600/r600_context.h index c15e643..aec0dab 100644 --- a/src/gallium/drivers/r600/r600_context.h +++ b/src/gallium/drivers/r600/r600_context.h @@ -279,6 +279,7 @@ extern int r600_pipe_shader_create(struct pipe_context *ctx, const struct tgsi_token *tokens); extern int r600_pipe_shader_update(struct pipe_context *ctx, struct r600_context_state *rstate); +extern int r600_find_vs_semantic_index(struct r600_context *rctx, struct r600_shader *rshader, int id); #define R600_ERR(fmt, args...) \ fprintf(stderr, EE %s/%s:%d - fmt, __FILE__, __func__, __LINE__, ##args) diff --git a/src/gallium/drivers/r600/r600_hw_states.c b/src/gallium/drivers/r600/r600_hw_states.c index 1e9c5ff..9cbf120 100644 --- a/src/gallium/drivers/r600/r600_hw_states.c +++ b/src/gallium/drivers/r600/r600_hw_states.c @@ -1007,7 +1007,7 @@ static int r600_ps_shader(struct r600_context *rctx, struct r600_context_state * radeon_state_init(state, rscreen-rw, R600_STATE_SHADER, 0, R600_SHADER_PS); for (i = 0; i rshader-ninput; i++) { - tmp = S_028644_SEMANTIC(i) | S_028644_SEL_CENTROID(1); + tmp = S_028644_SEMANTIC(r600_find_vs_semantic_index(rctx, rshader, i)) | S_028644_SEL_CENTROID(1); if (rshader-input[i].name == TGSI_SEMANTIC_POSITION) have_pos = TRUE; if (rshader-input[i].name == TGSI_SEMANTIC_COLOR || diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c index e18c6ce..3274f3b 100644 --- a/src/gallium/drivers/r600/r600_shader.c +++ b/src/gallium/drivers/r600/r600_shader.c @@ -64,6 +64,22 @@ struct r600_shader_tgsi_instruction { static struct r600_shader_tgsi_instruction r600_shader_tgsi_instruction[], eg_shader_tgsi_instruction[]; static int tgsi_helper_tempx_replicate(struct r600_shader_ctx *ctx); +/* called from hw states files to find VS-FS mapping */ +int r600_find_vs_semantic_index(struct r600_context *rctx, struct r600_shader *rshader, int id) +{ + int i; + struct r600_shader *vs = rctx-vs_shader-shader; + struct r600_shader_io *input = rshader-input[id]; + + for (i = 0; i vs-noutput; i++) { + if (input-name == vs-output[i].name + input-sid == vs-output[i].sid) { + return i - 1; + } + } + return 0; +} + static int r600_shader_update(struct pipe_context *ctx, struct r600_shader *shader) { struct r600_context *rctx = r600_context(ctx); ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit
Re: [Mesa-dev] Mesa (master): glsl2: Add pass to remove redundant jumps
On Tue, 14 Sep 2010 03:55:06 +0200, Luca Barbieri l...@luca-barbieri.com wrote: ir_lower_jumps should already do the jump unification, and could/should also remove the continue. It's probably best to put all jump manipulations there to avoid risking rerunning all passes a number of times linear in the program size. Regarding ifs, it would be nice to also remove empty else branches, and possibly convert if(c) {} else {code()} to if(!c) {code()} or I remember writing the code to do that, but now I don't see it anywhere. It should happen in ir_if_simplification, I think. perhaps do the reverse canonicalization instead. And also things like if(c) {if(c) {code()}} to if(c) {code()} We don't have anything for handling constraints on values, and it would be nice if we did. as well as if(1) {code()} to code(), That's in ir_if_simplification. pgpk173lctToY.pgp Description: PGP signature ___ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit