Mesa (master): st/mesa: Clean up header file inclusion in st_draw.h.

2010-12-21 Thread Vinson Lee
Module: Mesa
Branch: master
Commit: 3d03b4d839afeb4939b28c21ca32f6cb069f4495
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=3d03b4d839afeb4939b28c21ca32f6cb069f4495

Author: Vinson Lee v...@vmware.com
Date:   Tue Dec 21 01:17:37 2010 -0800

st/mesa: Clean up header file inclusion in st_draw.h.

---

 src/mesa/state_tracker/st_draw.h |3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/src/mesa/state_tracker/st_draw.h b/src/mesa/state_tracker/st_draw.h
index 2e4c468..5d3c278 100644
--- a/src/mesa/state_tracker/st_draw.h
+++ b/src/mesa/state_tracker/st_draw.h
@@ -36,10 +36,11 @@
 
 #include main/compiler.h
 #include main/glheader.h
-#include main/mtypes.h
 
 struct _mesa_index_buffer;
 struct _mesa_prim;
+struct gl_client_array;
+struct gl_context;
 struct st_context;
 
 void st_init_draw( struct st_context *st );

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): st/mesa: Clean up header file inclusion in st_format.h.

2010-12-21 Thread Vinson Lee
Module: Mesa
Branch: master
Commit: c1f0f90a976c62546efed34ecbec50b25d0f6aa7
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c1f0f90a976c62546efed34ecbec50b25d0f6aa7

Author: Vinson Lee v...@vmware.com
Date:   Tue Dec 21 01:25:04 2010 -0800

st/mesa: Clean up header file inclusion in st_format.h.

---

 src/mesa/state_tracker/st_format.h |3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/src/mesa/state_tracker/st_format.h 
b/src/mesa/state_tracker/st_format.h
index 43fa59b..fe195c1 100644
--- a/src/mesa/state_tracker/st_format.h
+++ b/src/mesa/state_tracker/st_format.h
@@ -31,11 +31,12 @@
 #define ST_FORMAT_H
 
 #include main/formats.h
-#include main/mtypes.h
+#include main/glheader.h
 
 #include pipe/p_defines.h
 #include pipe/p_format.h
 
+struct gl_context;
 struct pipe_screen;
 
 extern GLenum

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): intel: Check for unsupported texture when finishing using as a render target

2010-12-21 Thread Chris Wilson
Module: Mesa
Branch: master
Commit: 8b9570e685f010745e2dfb1bff00d555e2e5f6ba
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=8b9570e685f010745e2dfb1bff00d555e2e5f6ba

Author: Chris Wilson ch...@chris-wilson.co.uk
Date:   Tue Dec 21 11:55:11 2010 +

intel: Check for unsupported texture when finishing using as a render target

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=32541
Signed-off-by: Chris Wilson ch...@chris-wilson.co.uk

---

 src/mesa/drivers/dri/intel/intel_fbo.c |3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/src/mesa/drivers/dri/intel/intel_fbo.c 
b/src/mesa/drivers/dri/intel/intel_fbo.c
index f6fe7b1..c3f528c 100644
--- a/src/mesa/drivers/dri/intel/intel_fbo.c
+++ b/src/mesa/drivers/dri/intel/intel_fbo.c
@@ -547,7 +547,8 @@ intel_finish_render_texture(struct gl_context * ctx,
_glthread_GetID(), att-Texture-Name);
 
/* Flag that this image may now be validated into the object's miptree. */
-   intel_image-used_as_render_target = GL_FALSE;
+   if (intel_image)
+  intel_image-used_as_render_target = GL_FALSE;
 
/* Since we've (probably) rendered to the texture and will (likely) use
 * it in the texture domain later on in this batchbuffer, flush the

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): r600g: avoid segfault

2010-12-21 Thread Jerome Glisse
Module: Mesa
Branch: master
Commit: fa62cf7450595b3d99259b5a212df301ca711d4b
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=fa62cf7450595b3d99259b5a212df301ca711d4b

Author: Jerome Glisse jgli...@redhat.com
Date:   Tue Dec 21 10:49:53 2010 -0500

r600g: avoid segfault

Candidates 7.10

Signed-off-by: Jerome Glisse jgli...@redhat.com

---

 src/gallium/drivers/r600/evergreen_state.c |2 +-
 src/gallium/drivers/r600/r600_state.c  |2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/r600/evergreen_state.c 
b/src/gallium/drivers/r600/evergreen_state.c
index af19beb..8a69a10 100644
--- a/src/gallium/drivers/r600/evergreen_state.c
+++ b/src/gallium/drivers/r600/evergreen_state.c
@@ -1334,7 +1334,7 @@ void evergreen_vertex_buffer_update(struct 
r600_pipe_context *rctx)
rbuffer = (struct r600_resource*)vertex_buffer-buffer;
offset = 0;
}
-   if (vertex_buffer == NULL)
+   if (vertex_buffer == NULL || rbuffer == NULL)
continue;
offset += vertex_buffer-buffer_offset + 
r600_bo_offset(rbuffer-bo);
 
diff --git a/src/gallium/drivers/r600/r600_state.c 
b/src/gallium/drivers/r600/r600_state.c
index 0d76afd..9b099df 100644
--- a/src/gallium/drivers/r600/r600_state.c
+++ b/src/gallium/drivers/r600/r600_state.c
@@ -174,7 +174,7 @@ void r600_vertex_buffer_update(struct r600_pipe_context 
*rctx)
rbuffer = (struct r600_resource*)vertex_buffer-buffer;
offset = 0;
}
-   if (vertex_buffer == NULL)
+   if (vertex_buffer == NULL || rbuffer == NULL)
continue;
offset += vertex_buffer-buffer_offset + 
r600_bo_offset(rbuffer-bo);
 

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): i965: Avoid using float type for raw moves, to work around SNB issue.

2010-12-21 Thread Eric Anholt
Module: Mesa
Branch: master
Commit: 4fe78d3e12fa963273de4d83b1fd55a78a5d41bf
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=4fe78d3e12fa963273de4d83b1fd55a78a5d41bf

Author: Eric Anholt e...@anholt.net
Date:   Tue Dec 21 13:04:07 2010 -0800

i965: Avoid using float type for raw moves, to work around SNB issue.

The SNB alt-mode math does the denorm and inf reduction even for a
raw MOV like we do for g0 message header setup, where we are moving
values that aren't actually floats.  Just use UD type, where raw MOVs
really are raw MOVs.

Fixes glxgears since c52adfc2e1d130effea940e75690897eb5d3ceaa, but no
piglit tests had regressed(!)

---

 src/mesa/drivers/dri/i965/brw_eu_emit.c |9 ++---
 src/mesa/drivers/dri/i965/brw_wm_emit.c |3 ++-
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_eu_emit.c 
b/src/mesa/drivers/dri/i965/brw_eu_emit.c
index 9c764fe..2bdcacf 100644
--- a/src/mesa/drivers/dri/i965/brw_eu_emit.c
+++ b/src/mesa/drivers/dri/i965/brw_eu_emit.c
@@ -1936,7 +1936,8 @@ void brw_SAMPLE(struct brw_compile *p,
 brw_set_compression_control(p, BRW_COMPRESSION_NONE);
 brw_set_mask_control(p, BRW_MASK_DISABLE);
 
-brw_MOV(p, m1, brw_vec8_grf(0,0));  
+brw_MOV(p, retype(m1, BRW_REGISTER_TYPE_UD),
+retype(brw_vec8_grf(0,0), BRW_REGISTER_TYPE_UD));
 brw_MOV(p, get_element_ud(m1, 2), brw_imm_ud(newmask  12)); 
 
 brw_pop_insn_state(p);
@@ -1997,7 +1998,8 @@ void brw_SAMPLE(struct brw_compile *p,
*/
   brw_push_insn_state(p);
   brw_set_compression_control(p, BRW_COMPRESSION_NONE);
-  brw_MOV(p, reg, reg);  
+  brw_MOV(p, retype(reg, BRW_REGISTER_TYPE_UD),
+ retype(reg, BRW_REGISTER_TYPE_UD));
   brw_pop_insn_state(p);
}
 
@@ -2029,7 +2031,8 @@ void brw_urb_WRITE(struct brw_compile *p,
if (intel-gen = 6) {
   brw_push_insn_state(p);
   brw_set_mask_control( p, BRW_MASK_DISABLE );
-  brw_MOV(p, brw_message_reg(msg_reg_nr), src0);
+  brw_MOV(p, retype(brw_message_reg(msg_reg_nr), BRW_REGISTER_TYPE_UD),
+ retype(src0, BRW_REGISTER_TYPE_UD));
   brw_pop_insn_state(p);
   src0 = brw_message_reg(msg_reg_nr);
}
diff --git a/src/mesa/drivers/dri/i965/brw_wm_emit.c 
b/src/mesa/drivers/dri/i965/brw_wm_emit.c
index be86e0e..39cf964 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_emit.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_emit.c
@@ -1501,7 +1501,8 @@ void emit_fb_write(struct brw_wm_compile *c,
*/
   brw_push_insn_state(p);
   brw_set_mask_control(p, BRW_MASK_DISABLE);
-  brw_MOV(p, brw_message_reg(0), brw_vec8_grf(0, 0));
+  brw_MOV(p, retype(brw_message_reg(0), BRW_REGISTER_TYPE_UD),
+ retype(brw_vec8_grf(0, 0), BRW_REGISTER_TYPE_UD));
   brw_pop_insn_state(p);
 
   if (target != 0) {

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): r300g: support B10G10R10A2 render targets only with DRM 2.8. 0 or later versions

2010-12-21 Thread Marek Olšák
Module: Mesa
Branch: master
Commit: 2a95542088fbada4ffe5bdd2da90b215cb6a5003
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=2a95542088fbada4ffe5bdd2da90b215cb6a5003

Author: Marek Olšák mar...@gmail.com
Date:   Tue Dec 21 19:26:27 2010 +0100

r300g: support B10G10R10A2 render targets only with DRM 2.8.0 or later versions

---

 src/gallium/drivers/r300/r300_screen.c|4 +++-
 src/gallium/drivers/r300/r300_winsys.h|5 +++--
 src/gallium/winsys/radeon/drm/radeon_drm_common.c |4 
 src/gallium/winsys/radeon/drm/radeon_r300.c   |2 ++
 src/gallium/winsys/radeon/drm/radeon_winsys.h |4 +++-
 5 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/src/gallium/drivers/r300/r300_screen.c 
b/src/gallium/drivers/r300/r300_screen.c
index 921d6f1..36060ab 100644
--- a/src/gallium/drivers/r300/r300_screen.c
+++ b/src/gallium/drivers/r300/r300_screen.c
@@ -309,7 +309,9 @@ static boolean r300_is_format_supported(struct pipe_screen* 
screen,
 unsigned usage,
 unsigned geom_flags)
 {
+struct r300_winsys_screen *rws = r300_screen(screen)-rws;
 uint32_t retval = 0;
+boolean drm_2_8_0 = rws-get_value(rws, R300_VID_DRM_2_8_0);
 boolean is_r500 = r300_screen(screen)-caps.is_r500;
 boolean is_r400 = r300_screen(screen)-caps.is_r400;
 boolean is_color2101010 = format == PIPE_FORMAT_R10G10B10A2_UNORM ||
@@ -363,7 +365,7 @@ static boolean r300_is_format_supported(struct pipe_screen* 
screen,
   PIPE_BIND_SCANOUT |
   PIPE_BIND_SHARED)) 
 /* 2101010 cannot be rendered to on non-r5xx. */
-(is_r500 || !is_color2101010) 
+(!is_color2101010 || (is_r500  drm_2_8_0)) 
 r300_is_colorbuffer_format_supported(format)) {
 retval |= usage 
 (PIPE_BIND_RENDER_TARGET |
diff --git a/src/gallium/drivers/r300/r300_winsys.h 
b/src/gallium/drivers/r300/r300_winsys.h
index 0dd330d..b8324af 100644
--- a/src/gallium/drivers/r300/r300_winsys.h
+++ b/src/gallium/drivers/r300/r300_winsys.h
@@ -51,8 +51,9 @@ enum r300_value_id {
 R300_VID_GB_PIPES,
 R300_VID_Z_PIPES,
 R300_VID_SQUARE_TILING_SUPPORT,
-R300_VID_DRM_2_3_0,
-R300_VID_DRM_2_6_0,
+R300_VID_DRM_2_3_0, /* R500 VAP regs, MSPOS regs, fixed tex3D size 
checking */
+R300_VID_DRM_2_6_0, /* Hyper-Z, GB_Z_PEQ_CONFIG on rv350-r4xx, R500 
FG_ALPHA_VALUE */
+R300_VID_DRM_2_8_0, /* R500 US_FORMAT regs, R500 ARGB2101010 colorbuffer */
 R300_CAN_HYPERZ,
 };
 
diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_common.c 
b/src/gallium/winsys/radeon/drm/radeon_drm_common.c
index 6bc6244..f38ab6e 100644
--- a/src/gallium/winsys/radeon/drm/radeon_drm_common.c
+++ b/src/gallium/winsys/radeon/drm/radeon_drm_common.c
@@ -122,6 +122,10 @@ static void do_ioctls(struct radeon_drm_winsys *winsys)
 (version-version_major == 2 
  version-version_minor = 6);
 
+winsys-drm_2_8_0 = version-version_major  2 ||
+(version-version_major == 2 
+ version-version_minor = 8);
+
 info.request = RADEON_INFO_DEVICE_ID;
 retval = drmCommandWriteRead(winsys-fd, DRM_RADEON_INFO, info, 
sizeof(info));
 if (retval) {
diff --git a/src/gallium/winsys/radeon/drm/radeon_r300.c 
b/src/gallium/winsys/radeon/drm/radeon_r300.c
index 9f59b3d..ae7020a 100644
--- a/src/gallium/winsys/radeon/drm/radeon_r300.c
+++ b/src/gallium/winsys/radeon/drm/radeon_r300.c
@@ -211,6 +211,8 @@ static uint32_t radeon_get_value(struct r300_winsys_screen 
*rws,
 return ws-drm_2_3_0;
 case R300_VID_DRM_2_6_0:
 return ws-drm_2_6_0;
+case R300_VID_DRM_2_8_0:
+return ws-drm_2_8_0;
 case R300_CAN_HYPERZ:
 return ws-hyperz;
 }
diff --git a/src/gallium/winsys/radeon/drm/radeon_winsys.h 
b/src/gallium/winsys/radeon/drm/radeon_winsys.h
index 81da1a2..6f23214 100644
--- a/src/gallium/winsys/radeon/drm/radeon_winsys.h
+++ b/src/gallium/winsys/radeon/drm/radeon_winsys.h
@@ -49,8 +49,10 @@ struct radeon_drm_winsys {
 boolean squaretiling;   /* Square tiling support. */
 /* DRM 2.3.0 (R500 VAP regs, MSPOS regs, fixed tex3D size checking) */
 boolean drm_2_3_0;
-/* DRM 2.6.0 (Hyper-Z, GB_Z_PEQ_CONFIG allowed on rv350-r4xx) */
+/* DRM 2.6.0 (Hyper-Z, GB_Z_PEQ_CONFIG allowed on rv350-r4xx, 
FG_ALPHA_VALUE) */
 boolean drm_2_6_0;
+/* DRM 2.8.0 (US_FORMAT regs, ARGB2101010 colorbuffer) */
+boolean drm_2_8_0;
 /* Hyper-Z user */
 boolean hyperz;
 

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): r300g: fix precision issues with B10G10R10A2

2010-12-21 Thread Marek Olšák
Module: Mesa
Branch: master
Commit: cb4f367b268b6fbedc6673b2c6e51d107e929370
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=cb4f367b268b6fbedc6673b2c6e51d107e929370

Author: Marek Olšák mar...@gmail.com
Date:   Wed Dec 22 02:22:09 2010 +0100

r300g: fix precision issues with B10G10R10A2

---

 src/gallium/drivers/r300/r300_texture.c |2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/src/gallium/drivers/r300/r300_texture.c 
b/src/gallium/drivers/r300/r300_texture.c
index 6d86bc2..24f1d68 100644
--- a/src/gallium/drivers/r300/r300_texture.c
+++ b/src/gallium/drivers/r300/r300_texture.c
@@ -481,6 +481,8 @@ static uint32_t r300_translate_out_fmt(enum pipe_format 
format)
 } else {
 if (desc-channel[i].size == 16) {
 modifier |= R300_US_OUT_FMT_C4_16;
+} else if (desc-channel[i].size == 10) {
+modifier |= R300_US_OUT_FMT_C4_10;
 } else {
 /* C4_8 seems to be used for the formats whose pixel size
  * is = 32 bits. */

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): r600g: fix evergreen segfaults.

2010-12-21 Thread Dave Airlie
Module: Mesa
Branch: master
Commit: 2dd189a824d4c5c5157aaf381d5e424317a8d1e4
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=2dd189a824d4c5c5157aaf381d5e424317a8d1e4

Author: Dave Airlie airl...@redhat.com
Date:   Wed Dec 22 14:54:17 2010 +1000

r600g: fix evergreen segfaults.

evergreen was crashing running even gears here.

This is a 7.10 candidate if its broken the same.

Signed-off-by: Dave Airlie airl...@redhat.com

---

 src/gallium/drivers/r600/r600_state_common.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/gallium/drivers/r600/r600_state_common.c 
b/src/gallium/drivers/r600/r600_state_common.c
index f488cf7..3603376 100644
--- a/src/gallium/drivers/r600/r600_state_common.c
+++ b/src/gallium/drivers/r600/r600_state_common.c
@@ -182,7 +182,7 @@ void r600_set_vertex_buffers(struct pipe_context *ctx, 
unsigned count,
if (rctx-family = CHIP_CEDAR) {
for (int i = 0; i  rctx-nvertex_buffer; i++) {
pipe_resource_reference(rctx-vertex_buffer[i].buffer, 
NULL);
-   evergreen_fs_resource_set(rctx-ctx, NULL, i);
+   
evergreen_context_pipe_state_set_fs_resource(rctx-ctx, NULL, i);
}
} else {
for (int i = 0; i  rctx-nvertex_buffer; i++) {

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): st/egl: Make config optional for create_pixmap_surface.

2010-12-21 Thread Chia-I Wu
Module: Mesa
Branch: master
Commit: af767ee1133058bb24e2183e8bf2846424c96ee0
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=af767ee1133058bb24e2183e8bf2846424c96ee0

Author: Chia-I Wu o...@lunarg.com
Date:   Wed Dec 22 12:14:44 2010 +0800

st/egl: Make config optional for create_pixmap_surface.

eglCopyBuffers or EGL_KHR_image_pixmap require creating a pixmap surface
without a config.  Make it just work without relying on
is_pixmap_supported.

---

 src/gallium/state_trackers/egl/common/native.h |4 +-
 src/gallium/state_trackers/egl/x11/native_dri2.c   |   42 +++
 src/gallium/state_trackers/egl/x11/native_ximage.c |   79 
 3 files changed, 79 insertions(+), 46 deletions(-)

diff --git a/src/gallium/state_trackers/egl/common/native.h 
b/src/gallium/state_trackers/egl/common/native.h
index 3886ca2..a66e81d 100644
--- a/src/gallium/state_trackers/egl/common/native.h
+++ b/src/gallium/state_trackers/egl/common/native.h
@@ -185,7 +185,9 @@ struct native_display {
const struct native_config 
*nconf);
 
/**
-* Create a pixmap surface.  Required unless no config has pixmap_bit set.
+* Create a pixmap surface.  The native config may be NULL.  In that case, a
+* best config will be picked.  Required unless no config has pixmap_bit
+* set.
 */
struct native_surface *(*create_pixmap_surface)(struct native_display *ndpy,
EGLNativePixmapType pix,
diff --git a/src/gallium/state_trackers/egl/x11/native_dri2.c 
b/src/gallium/state_trackers/egl/x11/native_dri2.c
index 8108ce4..92203e1 100644
--- a/src/gallium/state_trackers/egl/x11/native_dri2.c
+++ b/src/gallium/state_trackers/egl/x11/native_dri2.c
@@ -40,11 +40,6 @@
 
 #ifdef GLX_DIRECT_RENDERING
 
-enum dri2_surface_type {
-   DRI2_SURFACE_TYPE_WINDOW,
-   DRI2_SURFACE_TYPE_PIXMAP,
-};
-
 struct dri2_display {
struct native_display base;
Display *dpy;
@@ -66,7 +61,6 @@ struct dri2_display {
 struct dri2_surface {
struct native_surface base;
Drawable drawable;
-   enum dri2_surface_type type;
enum pipe_format color_format;
struct dri2_display *dri2dpy;
 
@@ -439,12 +433,10 @@ dri2_surface_destroy(struct native_surface *nsurf)
 
 static struct dri2_surface *
 dri2_display_create_surface(struct native_display *ndpy,
-enum dri2_surface_type type,
 Drawable drawable,
-const struct native_config *nconf)
+enum pipe_format color_format)
 {
struct dri2_display *dri2dpy = dri2_display(ndpy);
-   struct dri2_config *dri2conf = dri2_config(nconf);
struct dri2_surface *dri2surf;
 
dri2surf = CALLOC_STRUCT(dri2_surface);
@@ -452,9 +444,8 @@ dri2_display_create_surface(struct native_display *ndpy,
   return NULL;
 
dri2surf-dri2dpy = dri2dpy;
-   dri2surf-type = type;
dri2surf-drawable = drawable;
-   dri2surf-color_format = dri2conf-base.color_format;
+   dri2surf-color_format = color_format;
 
dri2surf-base.destroy = dri2_surface_destroy;
dri2surf-base.present = dri2_surface_present;
@@ -480,8 +471,8 @@ dri2_display_create_window_surface(struct native_display 
*ndpy,
 {
struct dri2_surface *dri2surf;
 
-   dri2surf = dri2_display_create_surface(ndpy, DRI2_SURFACE_TYPE_WINDOW,
- (Drawable) win, nconf);
+   dri2surf = dri2_display_create_surface(ndpy,
+ (Drawable) win, nconf-color_format);
return (dri2surf) ? dri2surf-base : NULL;
 }
 
@@ -492,8 +483,29 @@ dri2_display_create_pixmap_surface(struct native_display 
*ndpy,
 {
struct dri2_surface *dri2surf;
 
-   dri2surf = dri2_display_create_surface(ndpy, DRI2_SURFACE_TYPE_PIXMAP,
- (Drawable) pix, nconf);
+   if (!nconf) {
+  struct dri2_display *dri2dpy = dri2_display(ndpy);
+  uint depth, nconf_depth;
+  int i;
+
+  depth = x11_drawable_get_depth(dri2dpy-xscr, (Drawable) pix);
+  for (i = 0; i  dri2dpy-num_configs; i++) {
+ nconf_depth = util_format_get_blocksizebits(
+   dri2dpy-configs[i].base.color_format);
+ /* simple depth match for now */
+ if (depth == nconf_depth ||
+ (depth == 24  depth + 8 == nconf_depth)) {
+nconf = dri2dpy-configs[i].base;
+break;
+ }
+  }
+
+  if (!nconf)
+ return NULL;
+   }
+
+   dri2surf = dri2_display_create_surface(ndpy,
+ (Drawable) pix, nconf-color_format);
return (dri2surf) ? dri2surf-base : NULL;
 }
 
diff --git a/src/gallium/state_trackers/egl/x11/native_ximage.c 
b/src/gallium/state_trackers/egl/x11/native_ximage.c
index 84811fb..3c32f37 100644
--- a/src/gallium/state_trackers/egl/x11/native_ximage.c
+++ b/src/gallium/state_trackers/egl/x11/native_ximage.c
@@ -38,11 +38,6 @@
 #include native_x11.h
 #include x11_screen.h
 
-enum ximage_surface_type {
-   XIMAGE_SURFACE_TYPE_WINDOW,
-   

Mesa (master): st/egl: Remove unnecessary egl_g3d_find_pixmap_config.

2010-12-21 Thread Chia-I Wu
Module: Mesa
Branch: master
Commit: 0364c08d7f219ef3a250a4fd8396aacfdddf0368
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=0364c08d7f219ef3a250a4fd8396aacfdddf0368

Author: Chia-I Wu o...@lunarg.com
Date:   Wed Dec 22 12:19:12 2010 +0800

st/egl: Remove unnecessary egl_g3d_find_pixmap_config.

It was used to find a compatible config for a given pixmap.  Now that a
config is optional for pixmap surface creation, the function is not
needed.

---

 .../state_trackers/egl/common/egl_g3d_api.c|   27 +---
 .../state_trackers/egl/common/egl_g3d_api.h|3 --
 .../state_trackers/egl/common/egl_g3d_image.c  |8 +-
 3 files changed, 2 insertions(+), 36 deletions(-)

diff --git a/src/gallium/state_trackers/egl/common/egl_g3d_api.c 
b/src/gallium/state_trackers/egl/common/egl_g3d_api.c
index 8e53e1d..a15c988 100644
--- a/src/gallium/state_trackers/egl/common/egl_g3d_api.c
+++ b/src/gallium/state_trackers/egl/common/egl_g3d_api.c
@@ -643,19 +643,13 @@ egl_g3d_copy_buffers(_EGLDriver *drv, _EGLDisplay *dpy, 
_EGLSurface *surf,
struct egl_g3d_display *gdpy = egl_g3d_display(dpy);
struct egl_g3d_surface *gsurf = egl_g3d_surface(surf);
_EGLContext *ctx = _eglGetCurrentContext();
-   struct egl_g3d_config *gconf;
struct native_surface *nsurf;
struct pipe_resource *ptex;
 
if (!gsurf-render_texture)
   return EGL_TRUE;
 
-   gconf = egl_g3d_config(egl_g3d_find_pixmap_config(dpy, target));
-   if (!gconf)
-  return _eglError(EGL_BAD_NATIVE_PIXMAP, eglCopyBuffers);
-
-   nsurf = gdpy-native-create_pixmap_surface(gdpy-native,
- target, gconf-native);
+   nsurf = gdpy-native-create_pixmap_surface(gdpy-native, target, NULL);
if (!nsurf)
   return _eglError(EGL_BAD_NATIVE_PIXMAP, eglCopyBuffers);
 
@@ -888,25 +882,6 @@ egl_g3d_show_screen_surface(_EGLDriver *drv, _EGLDisplay 
*dpy,
 
 #endif /* EGL_MESA_screen_surface */
 
-/**
- * Find a config that supports the pixmap.
- */
-_EGLConfig *
-egl_g3d_find_pixmap_config(_EGLDisplay *dpy, EGLNativePixmapType pix)
-{
-   struct egl_g3d_display *gdpy = egl_g3d_display(dpy);
-   struct egl_g3d_config *gconf;
-   EGLint i;
-
-   for (i = 0; i  dpy-Configs-Size; i++) {
-  gconf = egl_g3d_config((_EGLConfig *) dpy-Configs-Elements[i]);
-  if (gdpy-native-is_pixmap_supported(gdpy-native, pix, gconf-native))
- break;
-   }
-
-   return (i  dpy-Configs-Size) ? gconf-base : NULL;
-}
-
 void
 egl_g3d_init_driver_api(_EGLDriver *drv)
 {
diff --git a/src/gallium/state_trackers/egl/common/egl_g3d_api.h 
b/src/gallium/state_trackers/egl/common/egl_g3d_api.h
index d5196c1..17fd795 100644
--- a/src/gallium/state_trackers/egl/common/egl_g3d_api.h
+++ b/src/gallium/state_trackers/egl/common/egl_g3d_api.h
@@ -31,7 +31,4 @@
 void
 egl_g3d_init_driver_api(_EGLDriver *drv);
 
-_EGLConfig *
-egl_g3d_find_pixmap_config(_EGLDisplay *dpy, EGLNativePixmapType pix);
-
 #endif /* _EGL_G3D_API_H_ */
diff --git a/src/gallium/state_trackers/egl/common/egl_g3d_image.c 
b/src/gallium/state_trackers/egl/common/egl_g3d_image.c
index b2d6b43..e6ff100 100644
--- a/src/gallium/state_trackers/egl/common/egl_g3d_image.c
+++ b/src/gallium/state_trackers/egl/common/egl_g3d_image.c
@@ -48,17 +48,11 @@ static struct pipe_resource *
 egl_g3d_reference_native_pixmap(_EGLDisplay *dpy, EGLNativePixmapType pix)
 {
struct egl_g3d_display *gdpy = egl_g3d_display(dpy);
-   struct egl_g3d_config *gconf;
struct native_surface *nsurf;
struct pipe_resource *textures[NUM_NATIVE_ATTACHMENTS];
enum native_attachment natt;
 
-   gconf = egl_g3d_config(egl_g3d_find_pixmap_config(dpy, pix));
-   if (!gconf)
-  return NULL;
-
-   nsurf = gdpy-native-create_pixmap_surface(gdpy-native,
- pix, gconf-native);
+   nsurf = gdpy-native-create_pixmap_surface(gdpy-native, pix, NULL);
if (!nsurf)
   return NULL;
 

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): st/egl: Remove native_config::slow_config.

2010-12-21 Thread Chia-I Wu
Module: Mesa
Branch: master
Commit: 3a93c348280767949c80ff6dde1645b77cab143d
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=3a93c348280767949c80ff6dde1645b77cab143d

Author: Chia-I Wu o...@lunarg.com
Date:   Wed Dec 22 12:22:42 2010 +0800

st/egl: Remove native_config::slow_config.

In direct rendering scenario, it is not needed until an EGLDisplay can
support both HW and SW pipe screens.

---

 src/gallium/state_trackers/egl/common/egl_g3d.c|3 ---
 src/gallium/state_trackers/egl/common/native.h |1 -
 src/gallium/state_trackers/egl/gdi/native_gdi.c|1 -
 src/gallium/state_trackers/egl/x11/native_dri2.c   |2 --
 src/gallium/state_trackers/egl/x11/native_ximage.c |2 --
 5 files changed, 0 insertions(+), 9 deletions(-)

diff --git a/src/gallium/state_trackers/egl/common/egl_g3d.c 
b/src/gallium/state_trackers/egl/common/egl_g3d.c
index a3750ac..4641dd2 100644
--- a/src/gallium/state_trackers/egl/common/egl_g3d.c
+++ b/src/gallium/state_trackers/egl/common/egl_g3d.c
@@ -229,9 +229,6 @@ init_config_attributes(_EGLConfig *conf, const struct 
native_config *nconf,
conf-Samples = nconf-samples;
conf-SampleBuffers = 0;
 
-   if (nconf-slow_config)
-  conf-ConfigCaveat = EGL_SLOW_CONFIG;
-
if (nconf-transparent_rgb) {
   conf-TransparentType = EGL_TRANSPARENT_RGB;
   conf-TransparentRedValue = nconf-transparent_rgb_values[0];
diff --git a/src/gallium/state_trackers/egl/common/native.h 
b/src/gallium/state_trackers/egl/common/native.h
index a66e81d..58d844e 100644
--- a/src/gallium/state_trackers/egl/common/native.h
+++ b/src/gallium/state_trackers/egl/common/native.h
@@ -127,7 +127,6 @@ struct native_config {
int native_visual_type;
int level;
int samples;
-   boolean slow_config;
boolean transparent_rgb;
int transparent_rgb_values[3];
 };
diff --git a/src/gallium/state_trackers/egl/gdi/native_gdi.c 
b/src/gallium/state_trackers/egl/gdi/native_gdi.c
index d259e6e..2d04506 100644
--- a/src/gallium/state_trackers/egl/gdi/native_gdi.c
+++ b/src/gallium/state_trackers/egl/gdi/native_gdi.c
@@ -319,7 +319,6 @@ gdi_display_get_configs(struct native_display *ndpy, int 
*num_configs)
  nconf-color_format = formats[i];
 
  nconf-window_bit = TRUE;
- nconf-slow_config = TRUE;
   }
 
   gdpy-num_configs = count;
diff --git a/src/gallium/state_trackers/egl/x11/native_dri2.c 
b/src/gallium/state_trackers/egl/x11/native_dri2.c
index 92203e1..83892e3 100644
--- a/src/gallium/state_trackers/egl/x11/native_dri2.c
+++ b/src/gallium/state_trackers/egl/x11/native_dri2.c
@@ -590,8 +590,6 @@ dri2_display_convert_config(struct native_display *ndpy,
nconf-level = mode-level;
nconf-samples = mode-samples;
 
-   nconf-slow_config = (mode-visualRating == GLX_SLOW_CONFIG);
-
if (mode-transparentPixel == GLX_TRANSPARENT_RGB) {
   nconf-transparent_rgb = TRUE;
   nconf-transparent_rgb_values[0] = mode-transparentRed;
diff --git a/src/gallium/state_trackers/egl/x11/native_ximage.c 
b/src/gallium/state_trackers/egl/x11/native_ximage.c
index 3c32f37..d4f4dd0 100644
--- a/src/gallium/state_trackers/egl/x11/native_ximage.c
+++ b/src/gallium/state_trackers/egl/x11/native_ximage.c
@@ -420,8 +420,6 @@ ximage_display_get_configs(struct native_display *ndpy, int 
*num_configs)
  xconf-base.native_visual_type = xconf-visual-class;
 #endif
 
- xconf-base.slow_config = TRUE;
-
  count++;
   }
 

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): st/egl: Remove native_config::samples.

2010-12-21 Thread Chia-I Wu
Module: Mesa
Branch: master
Commit: 975b7ef92a74c33bb853b012f377fb098e84fc46
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=975b7ef92a74c33bb853b012f377fb098e84fc46

Author: Chia-I Wu o...@lunarg.com
Date:   Wed Dec 22 12:27:35 2010 +0800

st/egl: Remove native_config::samples.

Multisample buffers are never requested.

---

 src/gallium/state_trackers/egl/common/egl_g3d.c  |4 +---
 src/gallium/state_trackers/egl/common/native.h   |1 -
 src/gallium/state_trackers/egl/x11/native_dri2.c |1 -
 3 files changed, 1 insertions(+), 5 deletions(-)

diff --git a/src/gallium/state_trackers/egl/common/egl_g3d.c 
b/src/gallium/state_trackers/egl/common/egl_g3d.c
index 4641dd2..d71ca86 100644
--- a/src/gallium/state_trackers/egl/common/egl_g3d.c
+++ b/src/gallium/state_trackers/egl/common/egl_g3d.c
@@ -226,8 +226,6 @@ init_config_attributes(_EGLConfig *conf, const struct 
native_config *nconf,
}
 
conf-Level = nconf-level;
-   conf-Samples = nconf-samples;
-   conf-SampleBuffers = 0;
 
if (nconf-transparent_rgb) {
   conf-TransparentType = EGL_TRANSPARENT_RGB;
@@ -275,7 +273,7 @@ egl_g3d_init_config(_EGLDriver *drv, _EGLDisplay *dpy,
gconf-stvis.color_format = nconf-color_format;
gconf-stvis.depth_stencil_format = depth_stencil_format;
gconf-stvis.accum_format = PIPE_FORMAT_NONE;
-   gconf-stvis.samples = nconf-samples;
+   gconf-stvis.samples = 0;
 
gconf-stvis.render_buffer = (buffer_mask  ST_ATTACHMENT_BACK_LEFT_MASK) ?
   ST_ATTACHMENT_BACK_LEFT : ST_ATTACHMENT_FRONT_LEFT;
diff --git a/src/gallium/state_trackers/egl/common/native.h 
b/src/gallium/state_trackers/egl/common/native.h
index 58d844e..654f445 100644
--- a/src/gallium/state_trackers/egl/common/native.h
+++ b/src/gallium/state_trackers/egl/common/native.h
@@ -126,7 +126,6 @@ struct native_config {
int native_visual_id;
int native_visual_type;
int level;
-   int samples;
boolean transparent_rgb;
int transparent_rgb_values[3];
 };
diff --git a/src/gallium/state_trackers/egl/x11/native_dri2.c 
b/src/gallium/state_trackers/egl/x11/native_dri2.c
index 83892e3..d60ef2a 100644
--- a/src/gallium/state_trackers/egl/x11/native_dri2.c
+++ b/src/gallium/state_trackers/egl/x11/native_dri2.c
@@ -588,7 +588,6 @@ dri2_display_convert_config(struct native_display *ndpy,
nconf-native_visual_id = mode-visualID;
nconf-native_visual_type = mode-visualType;
nconf-level = mode-level;
-   nconf-samples = mode-samples;
 
if (mode-transparentPixel == GLX_TRANSPARENT_RGB) {
   nconf-transparent_rgb = TRUE;

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): r600g: drop unused code in evergreen.

2010-12-21 Thread Dave Airlie
Module: Mesa
Branch: master
Commit: f431e0452b33ca9028e07cd85783297df6e87e69
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=f431e0452b33ca9028e07cd85783297df6e87e69

Author: Dave Airlie airl...@redhat.com
Date:   Wed Dec 22 15:58:29 2010 +1000

r600g: drop unused code in evergreen.

this code was pretty much duplicated, thanks to Henri Verbeet on irc for
pointing it out.

Signed-off-by: Dave Airlie airl...@redhat.com

---

 src/gallium/drivers/r600/evergreen_state.c |2 +-
 src/gallium/drivers/r600/r600.h|4 --
 src/gallium/winsys/r600/drm/evergreen_hw_context.c |   56 
 3 files changed, 1 insertions(+), 61 deletions(-)

diff --git a/src/gallium/drivers/r600/evergreen_state.c 
b/src/gallium/drivers/r600/evergreen_state.c
index 8a69a10..719b29f 100644
--- a/src/gallium/drivers/r600/evergreen_state.c
+++ b/src/gallium/drivers/r600/evergreen_state.c
@@ -1359,7 +1359,7 @@ void evergreen_vertex_buffer_update(struct 
r600_pipe_context *rctx)
0x, 0x, NULL);
r600_pipe_state_add_reg(rstate, R_03001C_RESOURCE0_WORD7,
0xC000, 0x, NULL);
-   evergreen_fs_resource_set(rctx-ctx, rstate, i);
+   evergreen_context_pipe_state_set_fs_resource(rctx-ctx, 
rstate, i);
}
 }
 
diff --git a/src/gallium/drivers/r600/r600.h b/src/gallium/drivers/r600/r600.h
index aa456d4..85e2966 100644
--- a/src/gallium/drivers/r600/r600.h
+++ b/src/gallium/drivers/r600/r600.h
@@ -284,10 +284,6 @@ void r600_context_queries_resume(struct r600_context *ctx);
 
 int evergreen_context_init(struct r600_context *ctx, struct radeon *radeon);
 void evergreen_context_draw(struct r600_context *ctx, const struct r600_draw 
*draw);
-void evergreen_ps_resource_set(struct r600_context *ctx, struct 
r600_pipe_state *state, unsigned rid);
-void evergreen_vs_resource_set(struct r600_context *ctx, struct 
r600_pipe_state *state, unsigned rid);
-void evergreen_fs_resource_set(struct r600_context *ctx, struct 
r600_pipe_state *state, unsigned rid);
-
 void evergreen_context_pipe_state_set_ps_resource(struct r600_context *ctx, 
struct r600_pipe_state *state, unsigned rid);
 void evergreen_context_pipe_state_set_vs_resource(struct r600_context *ctx, 
struct r600_pipe_state *state, unsigned rid);
 void evergreen_context_pipe_state_set_fs_resource(struct r600_context *ctx, 
struct r600_pipe_state *state, unsigned rid);
diff --git a/src/gallium/winsys/r600/drm/evergreen_hw_context.c 
b/src/gallium/winsys/r600/drm/evergreen_hw_context.c
index 2175d57..47d73c2 100644
--- a/src/gallium/winsys/r600/drm/evergreen_hw_context.c
+++ b/src/gallium/winsys/r600/drm/evergreen_hw_context.c
@@ -880,59 +880,3 @@ void evergreen_context_draw(struct r600_context *ctx, 
const struct r600_draw *dr
ctx-pm4_dirty_cdwords = 0;
 }
 
-static inline void evergreen_resource_set(struct r600_context *ctx, struct 
r600_pipe_state *state, unsigned offset)
-{
-   struct r600_range *range;
-   struct r600_block *block;
-
-   range = ctx-range[CTX_RANGE_ID(ctx, offset)];
-   block = range-blocks[CTX_BLOCK_ID(ctx, offset)];
-   block-reg[0] = state-regs[0].value;
-   block-reg[1] = state-regs[1].value;
-   block-reg[2] = state-regs[2].value;
-   block-reg[3] = state-regs[3].value;
-   block-reg[4] = state-regs[4].value;
-   block-reg[5] = state-regs[5].value;
-   block-reg[6] = state-regs[6].value;
-   block-reg[7] = state-regs[7].value;
-   r600_bo_reference(ctx-radeon, block-reloc[1].bo, NULL);
-   r600_bo_reference(ctx-radeon , block-reloc[2].bo, NULL);
-   if (state-regs[0].bo) {
-   /* VERTEX RESOURCE, we preted there is 2 bo to relocate so
-* we have single case btw VERTEX  TEXTURE resource
-*/
-   r600_bo_reference(ctx-radeon, block-reloc[1].bo, 
state-regs[0].bo);
-   r600_bo_reference(ctx-radeon, block-reloc[2].bo, 
state-regs[0].bo);
-   } else {
-   /* TEXTURE RESOURCE */
-   r600_bo_reference(ctx-radeon, block-reloc[1].bo, 
state-regs[2].bo);
-   r600_bo_reference(ctx-radeon, block-reloc[2].bo, 
state-regs[3].bo);
-   }
-   if (!(block-status  R600_BLOCK_STATUS_DIRTY)) {
-   block-status |= R600_BLOCK_STATUS_ENABLED;
-   block-status |= R600_BLOCK_STATUS_DIRTY;
-   ctx-pm4_dirty_cdwords += block-pm4_ndwords + 
block-pm4_flush_ndwords;
-   LIST_ADDTAIL(block-list,ctx-dirty);
-   }
-}
-
-void evergreen_ps_resource_set(struct r600_context *ctx, struct 
r600_pipe_state *state, unsigned rid)
-{
-   unsigned offset = R_03_RESOURCE0_WORD0 + 0x20 * rid;
-
-   evergreen_resource_set(ctx, state, offset);
-}
-
-void evergreen_vs_resource_set(struct r600_context *ctx, struct 
r600_pipe_state *state, unsigned rid)
-{
-   unsigned offset = 

Mesa (master): st/egl: Allow single-buffered pixmaps.

2010-12-21 Thread Chia-I Wu
Module: Mesa
Branch: master
Commit: 0fb2dcc98ff46299094c308b7b4e0cde9e38d5c0
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=0fb2dcc98ff46299094c308b7b4e0cde9e38d5c0

Author: Chia-I Wu o...@lunarg.com
Date:   Wed Dec 22 13:47:50 2010 +0800

st/egl: Allow single-buffered pixmaps.

All single-buffered configs were ignored before to make sure
EGL_RENDER_BUFFER is settable for window surfaces.  It is better to
allow single-buffered configs and set EGL_WINDOW_BIT only for
double-buffered ones.  This way there can be single-buffered pixmaps.

---

 src/gallium/state_trackers/egl/common/egl_g3d.c|   40 +++
 .../state_trackers/egl/common/egl_g3d_api.c|3 +-
 2 files changed, 17 insertions(+), 26 deletions(-)

diff --git a/src/gallium/state_trackers/egl/common/egl_g3d.c 
b/src/gallium/state_trackers/egl/common/egl_g3d.c
index d71ca86..f2b137a 100644
--- a/src/gallium/state_trackers/egl/common/egl_g3d.c
+++ b/src/gallium/state_trackers/egl/common/egl_g3d.c
@@ -183,17 +183,21 @@ init_config_attributes(_EGLConfig *conf, const struct 
native_config *nconf,
}
 
surface_type = 0x0;
-   if (nconf-window_bit)
-  surface_type |= EGL_WINDOW_BIT;
-   if (nconf-pixmap_bit)
-  surface_type |= EGL_PIXMAP_BIT;
+   /* pixmap surfaces should be EGL_SINGLE_BUFFER */
+   if (nconf-buffer_mask  (1  NATIVE_ATTACHMENT_FRONT_LEFT)) {
+  if (nconf-pixmap_bit)
+ surface_type |= EGL_PIXMAP_BIT;
+   }
+   /* the others surfaces should be EGL_BACK_BUFFER (or settable) */
+   if (nconf-buffer_mask  (1  NATIVE_ATTACHMENT_BACK_LEFT)) {
+  if (nconf-window_bit)
+ surface_type |= EGL_WINDOW_BIT;
 #ifdef EGL_MESA_screen_surface
-   if (nconf-scanout_bit)
-  surface_type |= EGL_SCREEN_BIT_MESA;
+  if (nconf-scanout_bit)
+ surface_type |= EGL_SCREEN_BIT_MESA;
 #endif
-
-   if (nconf-buffer_mask  (1  NATIVE_ATTACHMENT_BACK_LEFT))
   surface_type |= EGL_PBUFFER_BIT;
+   }
 
conf-Conformant = api_mask;
conf-RenderableType = api_mask;
@@ -252,13 +256,9 @@ egl_g3d_init_config(_EGLDriver *drv, _EGLDisplay *dpy,
 int preserve_buffer, int max_swap_interval)
 {
struct egl_g3d_config *gconf = egl_g3d_config(conf);
-   EGLint buffer_mask, api_mask;
+   EGLint buffer_mask;
EGLBoolean valid;
 
-   /* skip single-buffered configs */
-   if (!(nconf-buffer_mask  (1  NATIVE_ATTACHMENT_BACK_LEFT)))
-  return EGL_FALSE;
-
buffer_mask = 0x0;
if (nconf-buffer_mask  (1  NATIVE_ATTACHMENT_FRONT_LEFT))
   buffer_mask |= ST_ATTACHMENT_FRONT_LEFT_MASK;
@@ -275,22 +275,12 @@ egl_g3d_init_config(_EGLDriver *drv, _EGLDisplay *dpy,
gconf-stvis.accum_format = PIPE_FORMAT_NONE;
gconf-stvis.samples = 0;
 
+   /* will be overridden per surface */
gconf-stvis.render_buffer = (buffer_mask  ST_ATTACHMENT_BACK_LEFT_MASK) ?
   ST_ATTACHMENT_BACK_LEFT : ST_ATTACHMENT_FRONT_LEFT;
 
-   api_mask = dpy-ClientAPIsMask;
-   /* this is required by EGL, not by OpenGL ES */
-   if (nconf-window_bit 
-   gconf-stvis.render_buffer != ST_ATTACHMENT_BACK_LEFT)
-  api_mask = ~(EGL_OPENGL_ES_BIT | EGL_OPENGL_ES2_BIT);
-
-   if (!api_mask) {
-  _eglLog(_EGL_DEBUG, no state tracker supports config 0x%x,
-nconf-native_visual_id);
-   }
-
valid = init_config_attributes(gconf-base,
- nconf, api_mask, depth_stencil_format,
+ nconf, dpy-ClientAPIsMask, depth_stencil_format,
  preserve_buffer, max_swap_interval);
if (!valid) {
   _eglLog(_EGL_DEBUG, skip invalid config 0x%x, nconf-native_visual_id);
diff --git a/src/gallium/state_trackers/egl/common/egl_g3d_api.c 
b/src/gallium/state_trackers/egl/common/egl_g3d_api.c
index a15c988..aeabccf 100644
--- a/src/gallium/state_trackers/egl/common/egl_g3d_api.c
+++ b/src/gallium/state_trackers/egl/common/egl_g3d_api.c
@@ -324,7 +324,8 @@ egl_g3d_create_surface(_EGLDriver *drv, _EGLDisplay *dpy, 
_EGLConfig *conf,
}
 
gsurf-stvis = gconf-stvis;
-   if (gsurf-base.RenderBuffer == EGL_SINGLE_BUFFER)
+   if (gsurf-base.RenderBuffer == EGL_SINGLE_BUFFER 
+   gconf-stvis.buffer_mask  ST_ATTACHMENT_FRONT_LEFT_MASK)
   gsurf-stvis.render_buffer = ST_ATTACHMENT_FRONT_LEFT;
 
gsurf-stfbi = egl_g3d_create_st_framebuffer(gsurf-base);

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): st/egl: Plug pbuffer leaks.

2010-12-21 Thread Chia-I Wu
Module: Mesa
Branch: master
Commit: 18bc427adecd7ecd728adc03ed73bb07878c0e8f
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=18bc427adecd7ecd728adc03ed73bb07878c0e8f

Author: Chia-I Wu o...@lunarg.com
Date:   Wed Dec 22 13:59:58 2010 +0800

st/egl: Plug pbuffer leaks.

Unreference validated resources or remove unnecessary validations.

---

 .../state_trackers/egl/common/egl_g3d_api.c|   10 ++
 1 files changed, 2 insertions(+), 8 deletions(-)

diff --git a/src/gallium/state_trackers/egl/common/egl_g3d_api.c 
b/src/gallium/state_trackers/egl/common/egl_g3d_api.c
index aeabccf..07ea6dc 100644
--- a/src/gallium/state_trackers/egl/common/egl_g3d_api.c
+++ b/src/gallium/state_trackers/egl/common/egl_g3d_api.c
@@ -403,7 +403,6 @@ egl_g3d_create_pbuffer_surface(_EGLDriver *drv, _EGLDisplay 
*dpy,
_EGLConfig *conf, const EGLint *attribs)
 {
struct egl_g3d_surface *gsurf;
-   struct pipe_resource *ptex = NULL;
 
gsurf = create_pbuffer_surface(dpy, conf, attribs,
  eglCreatePbufferSurface);
@@ -412,13 +411,6 @@ egl_g3d_create_pbuffer_surface(_EGLDriver *drv, 
_EGLDisplay *dpy,
 
gsurf-client_buffer_type = EGL_NONE;
 
-   if (!gsurf-stfbi-validate(gsurf-stfbi,
-gsurf-stvis.render_buffer, 1, ptex)) {
-  egl_g3d_destroy_st_framebuffer(gsurf-stfbi);
-  FREE(gsurf);
-  return NULL;
-   }
-
return gsurf-base;
 }
 
@@ -478,12 +470,14 @@ egl_g3d_create_pbuffer_from_client_buffer(_EGLDriver 
*drv, _EGLDisplay *dpy,
gsurf-client_buffer_type = buftype;
gsurf-client_buffer = buffer;
 
+   /* validate now so that it fails if the client buffer is invalid */
if (!gsurf-stfbi-validate(gsurf-stfbi,
 gsurf-stvis.render_buffer, 1, ptex)) {
   egl_g3d_destroy_st_framebuffer(gsurf-stfbi);
   FREE(gsurf);
   return NULL;
}
+   pipe_resource_reference(ptex, NULL);
 
return gsurf-base;
 }

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): st/egl: Fix eglCopyBuffers.

2010-12-21 Thread Chia-I Wu
Module: Mesa
Branch: master
Commit: a31e2e3312cae5c4253a47dc30926ceb8c821ce3
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a31e2e3312cae5c4253a47dc30926ceb8c821ce3

Author: Chia-I Wu o...@lunarg.com
Date:   Wed Dec 22 14:21:21 2010 +0800

st/egl: Fix eglCopyBuffers.

Flush before presenting.

---

 .../state_trackers/egl/common/egl_g3d_api.c|   11 +--
 1 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/src/gallium/state_trackers/egl/common/egl_g3d_api.c 
b/src/gallium/state_trackers/egl/common/egl_g3d_api.c
index 07ea6dc..bce901a 100644
--- a/src/gallium/state_trackers/egl/common/egl_g3d_api.c
+++ b/src/gallium/state_trackers/egl/common/egl_g3d_api.c
@@ -665,14 +665,13 @@ egl_g3d_copy_buffers(_EGLDriver *drv, _EGLDisplay *dpy, 
_EGLSurface *surf,
 
ptex = get_pipe_resource(gdpy-native, nsurf, NATIVE_ATTACHMENT_FRONT_LEFT);
if (ptex) {
-  struct pipe_resource *psrc = gsurf-render_texture;
   struct pipe_box src_box;
+
   u_box_origin_2d(ptex-width0, ptex-height0, src_box);
-  if (psrc) {
- gdpy-pipe-resource_copy_region(gdpy-pipe, ptex, 0, 0, 0, 0,
-   gsurf-render_texture, 0, src_box);
- nsurf-present(nsurf, NATIVE_ATTACHMENT_FRONT_LEFT, FALSE, 0);
-  }
+  gdpy-pipe-resource_copy_region(gdpy-pipe, ptex, 0, 0, 0, 0,
+gsurf-render_texture, 0, src_box);
+  gdpy-pipe-flush(gdpy-pipe, PIPE_FLUSH_RENDER_CACHE, NULL);
+  nsurf-present(nsurf, NATIVE_ATTACHMENT_FRONT_LEFT, FALSE, 0);
 
   pipe_resource_reference(ptex, NULL);
}

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit


Demos (master): egl/opengl: EGL_SURFACE_TYPE should be ORed.

2010-12-21 Thread Chia-I Wu
Module: Demos
Branch: master
Commit: 65fb19a0871d1112e42d62d7a52afe7bc2eebbb7
URL:
http://cgit.freedesktop.org/mesa/demos/commit/?id=65fb19a0871d1112e42d62d7a52afe7bc2eebbb7

Author: Chia-I Wu olva...@gmail.com
Date:   Wed Dec 22 14:06:37 2010 +0800

egl/opengl: EGL_SURFACE_TYPE should be ORed.

It seems a window surface is always created.  Additional surface types
should be ORed.

---

 src/egl/opengl/xeglgears.c |8 
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/egl/opengl/xeglgears.c b/src/egl/opengl/xeglgears.c
index a6a977d..2401d07 100644
--- a/src/egl/opengl/xeglgears.c
+++ b/src/egl/opengl/xeglgears.c
@@ -786,19 +786,19 @@ main(int argc, char *argv[])
   }
   else if (strcmp(argv[i], -pixmap) == 0) {
  surface_type = GEARS_PIXMAP;
-attribs[1] = EGL_PIXMAP_BIT;
+attribs[1] |= EGL_PIXMAP_BIT;
   }
   else if (strcmp(argv[i], -pixmap-texture) == 0) {
  surface_type = GEARS_PIXMAP_TEXTURE;
-attribs[1] = EGL_PIXMAP_BIT;
+attribs[1] |= EGL_PIXMAP_BIT;
   }
   else if (strcmp(argv[i], -pbuffer) == 0) {
  surface_type = GEARS_PBUFFER;
-attribs[1] = EGL_PBUFFER_BIT;
+attribs[1] |= EGL_PBUFFER_BIT;
   }
   else if (strcmp(argv[i], -pbuffer-texture) == 0) {
  surface_type = GEARS_PBUFFER_TEXTURE;
-attribs[1] = EGL_PBUFFER_BIT;
+attribs[1] |= EGL_PBUFFER_BIT;
   }
   else if (strcmp(argv[i], -renderbuffer) == 0) {
  surface_type = GEARS_RENDERBUFFER;

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): r600g: remove useless switch statements

2010-12-21 Thread Alex Deucher
Module: Mesa
Branch: master
Commit: 341d048e4566af2f5909b2beeb9cd2b3d9a44e34
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=341d048e4566af2f5909b2beeb9cd2b3d9a44e34

Author: Alex Deucher alexdeuc...@gmail.com
Date:   Wed Dec 22 01:30:41 2010 -0500

r600g: remove useless switch statements

Signed-off-by: Alex Deucher alexdeuc...@gmail.com

---

 src/gallium/winsys/r600/drm/r600.c |   52 ---
 src/gallium/winsys/r600/drm/r600_drm.c |   53 
 2 files changed, 0 insertions(+), 105 deletions(-)

diff --git a/src/gallium/winsys/r600/drm/r600.c 
b/src/gallium/winsys/r600/drm/r600.c
index b88733f..82a55ac 100644
--- a/src/gallium/winsys/r600/drm/r600.c
+++ b/src/gallium/winsys/r600/drm/r600.c
@@ -79,58 +79,6 @@ struct radeon *r600_new(int fd, unsigned device)
r600_delete(r600);
return NULL;
}
-   switch (r600-family) {
-   case CHIP_R600:
-   case CHIP_RV610:
-   case CHIP_RV630:
-   case CHIP_RV670:
-   case CHIP_RV620:
-   case CHIP_RV635:
-   case CHIP_RS780:
-   case CHIP_RS880:
-   case CHIP_RV770:
-   case CHIP_RV730:
-   case CHIP_RV710:
-   case CHIP_RV740:
-   case CHIP_CEDAR:
-   case CHIP_REDWOOD:
-   case CHIP_JUNIPER:
-   case CHIP_CYPRESS:
-   case CHIP_HEMLOCK:
-   case CHIP_PALM:
-   break;
-   case CHIP_R100:
-   case CHIP_RV100:
-   case CHIP_RS100:
-   case CHIP_RV200:
-   case CHIP_RS200:
-   case CHIP_R200:
-   case CHIP_RV250:
-   case CHIP_RS300:
-   case CHIP_RV280:
-   case CHIP_R300:
-   case CHIP_R350:
-   case CHIP_RV350:
-   case CHIP_RV380:
-   case CHIP_R420:
-   case CHIP_R423:
-   case CHIP_RV410:
-   case CHIP_RS400:
-   case CHIP_RS480:
-   case CHIP_RS600:
-   case CHIP_RS690:
-   case CHIP_RS740:
-   case CHIP_RV515:
-   case CHIP_R520:
-   case CHIP_RV530:
-   case CHIP_RV560:
-   case CHIP_RV570:
-   case CHIP_R580:
-   default:
-   R600_ERR(unknown or unsupported chipset 0x%04X\n, 
r600-device);
-   break;
-   }
-
/* setup class */
switch (r600-family) {
case CHIP_R600:
diff --git a/src/gallium/winsys/r600/drm/r600_drm.c 
b/src/gallium/winsys/r600/drm/r600_drm.c
index 3cbbf91..94ed3ed 100644
--- a/src/gallium/winsys/r600/drm/r600_drm.c
+++ b/src/gallium/winsys/r600/drm/r600_drm.c
@@ -134,59 +134,6 @@ static struct radeon *radeon_new(int fd, unsigned device)
fprintf(stderr, Unknown chipset 0x%04X\n, radeon-device);
return radeon_decref(radeon);
}
-   switch (radeon-family) {
-   case CHIP_R600:
-   case CHIP_RV610:
-   case CHIP_RV630:
-   case CHIP_RV670:
-   case CHIP_RV620:
-   case CHIP_RV635:
-   case CHIP_RS780:
-   case CHIP_RS880:
-   case CHIP_RV770:
-   case CHIP_RV730:
-   case CHIP_RV710:
-   case CHIP_RV740:
-   case CHIP_CEDAR:
-   case CHIP_REDWOOD:
-   case CHIP_JUNIPER:
-   case CHIP_CYPRESS:
-   case CHIP_HEMLOCK:
-   case CHIP_PALM:
-   break;
-   case CHIP_R100:
-   case CHIP_RV100:
-   case CHIP_RS100:
-   case CHIP_RV200:
-   case CHIP_RS200:
-   case CHIP_R200:
-   case CHIP_RV250:
-   case CHIP_RS300:
-   case CHIP_RV280:
-   case CHIP_R300:
-   case CHIP_R350:
-   case CHIP_RV350:
-   case CHIP_RV380:
-   case CHIP_R420:
-   case CHIP_R423:
-   case CHIP_RV410:
-   case CHIP_RS400:
-   case CHIP_RS480:
-   case CHIP_RS600:
-   case CHIP_RS690:
-   case CHIP_RS740:
-   case CHIP_RV515:
-   case CHIP_R520:
-   case CHIP_RV530:
-   case CHIP_RV560:
-   case CHIP_RV570:
-   case CHIP_R580:
-   default:
-   fprintf(stderr, %s unknown or unsupported chipset 0x%04X\n,
-   __func__, radeon-device);
-   break;
-   }
-
/* setup class */
switch (radeon-family) {
case CHIP_R600:

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit