Mesa (master): u_blitter: add a custom blitter call passing a dsa cso

2010-09-23 Thread Dave Airlie
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.

2010-09-23 Thread Dave Airlie
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

2010-09-23 Thread Dave Airlie
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

2010-09-23 Thread Luca Barbieri
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

2010-09-23 Thread Luca Barbieri
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

2010-09-23 Thread Kristian Høgsberg
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

2010-09-23 Thread Kristian Høgsberg
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

2010-09-23 Thread Keith Whitwell
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

2010-09-23 Thread Keith Whitwell
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.

2010-09-23 Thread Jose Fonseca
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.

2010-09-23 Thread Jose Fonseca
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

2010-09-23 Thread Luca Barbieri
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

2010-09-23 Thread Luca Barbieri
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

2010-09-23 Thread Luca Barbieri
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

2010-09-23 Thread Luca Barbieri
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

2010-09-23 Thread Luca Barbieri
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

2010-09-23 Thread Luca Barbieri
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

2010-09-23 Thread Luca Barbieri
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

2010-09-23 Thread Luca Barbieri
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

2010-09-23 Thread Luca Barbieri
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

2010-09-23 Thread Luca Barbieri
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

2010-09-23 Thread Luca Barbieri
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

2010-09-23 Thread Luca Barbieri
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

2010-09-23 Thread Luca Barbieri
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

2010-09-23 Thread Luca Barbieri
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

2010-09-23 Thread Luca Barbieri
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

2010-09-23 Thread Ian Romanick
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

2010-09-23 Thread Luca Barbieri
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

2010-09-23 Thread Luca Barbieri
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

2010-09-23 Thread Luca Barbieri
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

2010-09-23 Thread Luca Barbieri
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.

2010-09-23 Thread Eric Anholt
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.

2010-09-23 Thread Eric Anholt
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.

2010-09-23 Thread Eric Anholt
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.

2010-09-23 Thread Eric Anholt
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.

2010-09-23 Thread Eric Anholt
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.

2010-09-23 Thread Tilman Sauerbeck
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

2010-09-23 Thread Jerome Glisse
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.

2010-09-23 Thread Dave Airlie
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.

2010-09-23 Thread Eric Anholt
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

2010-09-23 Thread Tom Stellard
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

2010-09-23 Thread Tom Stellard
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.

2010-09-23 Thread Eric Anholt
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.

2010-09-23 Thread Eric Anholt
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.

2010-09-23 Thread Eric Anholt
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.

2010-09-23 Thread Eric Anholt
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().

2010-09-23 Thread Eric Anholt
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.

2010-09-23 Thread Eric Anholt
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

2010-09-23 Thread Marek Olšák
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

2010-09-23 Thread Marek Olšák
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

2010-09-23 Thread Marek Olšák
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

2010-09-23 Thread Marek Olšák
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

2010-09-23 Thread Marek Olšák
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

2010-09-23 Thread Marek Olšák
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.

2010-09-23 Thread Dave Airlie
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.

2010-09-23 Thread Dave Airlie
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

2010-09-23 Thread Dave Airlie
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

2010-09-23 Thread Dave Airlie
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 .

2010-09-23 Thread Dave Airlie
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.

2010-09-23 Thread Dave Airlie
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.

2010-09-23 Thread Dave Airlie
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

2010-09-23 Thread Eric Anholt
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