Mesa (master): Complete ARGB8888 naming convention format renames missed

2012-01-17 Thread Kristian Høgsberg
Module: Mesa
Branch: master
Commit: e0897009f8fe8100204038e37f966300383a
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e0897009f8fe8100204038e37f966300383a

Author: Scott Moreau ore...@gmail.com
Date:   Tue Jan 17 10:36:12 2012 -0500

Complete ARGB naming convention format renames missed

---

 .../state_trackers/egl/wayland/native_shm.c|7 +++
 1 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/src/gallium/state_trackers/egl/wayland/native_shm.c 
b/src/gallium/state_trackers/egl/wayland/native_shm.c
index b76e5db..7d83e78 100644
--- a/src/gallium/state_trackers/egl/wayland/native_shm.c
+++ b/src/gallium/state_trackers/egl/wayland/native_shm.c
@@ -94,11 +94,10 @@ wayland_create_shm_buffer(struct wayland_display *display,
 
switch (surface-color_format) {
case PIPE_FORMAT_B8G8R8A8_UNORM:
-  format = (surface-premultiplied_alpha) ?
- WL_SHM_FORMAT_PREMULTIPLIED_ARGB32 : WL_SHM_FORMAT_ARGB32;
+  format = WL_SHM_FORMAT_ARGB;
   break;
case PIPE_FORMAT_B8G8R8X8_UNORM:
-  format = WL_SHM_FORMAT_XRGB32;
+  format = WL_SHM_FORMAT_XRGB;
   break;
default:
   return NULL;
@@ -116,7 +115,7 @@ shm_handle_format(void *data, struct wl_shm *shm, uint32_t 
format)
struct wayland_shm_display *shmdpy = data;
 
switch (format) {
-   case WL_SHM_FORMAT_ARGB32:
+   case WL_SHM_FORMAT_ARGB:
   shmdpy-base.formats |= HAS_ARGB;
   break;
case WL_SHM_FORMAT_XRGB:

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


Mesa (master): intel: Fix warnings of undefined ffs().

2012-01-17 Thread Eric Anholt
Module: Mesa
Branch: master
Commit: ccf0d31a210baf062dcc0e0c19527cdbbade0ac9
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ccf0d31a210baf062dcc0e0c19527cdbbade0ac9

Author: Eric Anholt e...@anholt.net
Date:   Thu Jan 12 14:32:50 2012 -0800

intel: Fix warnings of undefined ffs().

For some reason these started showing up with the automake conversion.

Reviewed-by: Kenneth Graunke kenn...@whitecape.org
Reviewed-by: Ian Romanick ian.d.roman...@intel.com
Reviewed-by: Chad Versace chad.vers...@linux.intel.com

---

 src/mesa/drivers/dri/intel/intel_context.h |1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/src/mesa/drivers/dri/intel/intel_context.h 
b/src/mesa/drivers/dri/intel/intel_context.h
index 9fb2902..e673a4e 100644
--- a/src/mesa/drivers/dri/intel/intel_context.h
+++ b/src/mesa/drivers/dri/intel/intel_context.h
@@ -30,6 +30,7 @@
 
 
 #include stdbool.h
+#include string.h
 #include main/mtypes.h
 #include main/mm.h
 

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


Mesa (master): intel: Drop the version override code now that we don' t have any left.

2012-01-17 Thread Eric Anholt
Module: Mesa
Branch: master
Commit: a14582d7e2ace05a3583cecff39f2bb4f41f7b79
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a14582d7e2ace05a3583cecff39f2bb4f41f7b79

Author: Eric Anholt e...@anholt.net
Date:   Thu Jan 12 14:53:10 2012 -0800

intel: Drop the version override code now that we don't have any left.

Fixes a compiler warning.

Reviewed-by: Kenneth Graunke kenn...@whitecape.org
Reviewed-by: Ian Romanick ian.d.roman...@intel.com
Reviewed-by: Chad Versace chad.vers...@linux.intel.com

---

 src/mesa/drivers/dri/intel/intel_extensions.c |8 
 1 files changed, 0 insertions(+), 8 deletions(-)

diff --git a/src/mesa/drivers/dri/intel/intel_extensions.c 
b/src/mesa/drivers/dri/intel/intel_extensions.c
index 7aa040c..0ce452f 100644
--- a/src/mesa/drivers/dri/intel/intel_extensions.c
+++ b/src/mesa/drivers/dri/intel/intel_extensions.c
@@ -41,14 +41,6 @@ void
 intelInitExtensions(struct gl_context *ctx)
 {
struct intel_context *intel = intel_context(ctx);
-   char *override = getenv(MESA_GL_VERSION_OVERRIDE);
-   int override_major, override_minor;
-   int override_version = 0;
-
-   if (override 
-   sscanf(override, %u.%u, override_major, override_minor) == 2) {
-  override_version = override_major * 10 + override_minor;
-   }
 
ctx-Extensions.ARB_draw_elements_base_vertex = true;
ctx-Extensions.ARB_explicit_attrib_location = true;

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


Mesa (master): i965: Convert the build to using automake.

2012-01-17 Thread Eric Anholt
Module: Mesa
Branch: master
Commit: e326480e4ebe8687948041c2dc5f5b7595559a2e
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e326480e4ebe8687948041c2dc5f5b7595559a2e

Author: Eric Anholt e...@anholt.net
Date:   Thu Jan 12 14:28:37 2012 -0800

i965: Convert the build to using automake.

This does introduce a warning by the automake build system, that the
missing-symbols test build is non-portable.  That's true -- Mac OS X
can't take something built as a loadable module and just link it as a
library.  Of course, we aren't building this on OS X at all, so it
would be nice to be able to suppress it, but I haven't found a way.

Still, the build is going to be much quieter than we have ever had
before, so I think this is a fair tradeoff until we find a way to shut
that warning up.

v2: Put a link in /lib to avoid transition pains for people.

Reviewed-by: Ian Romanick ian.d.roman...@intel.com (v1)
Reviewed-by: Matt Turner matts...@gmail.com (v1)

---

 .gitignore |4 ++
 configs/linux-dri  |2 +-
 configure.ac   |   13 +
 src/mesa/drivers/dri/i965/Android.mk   |6 +-
 src/mesa/drivers/dri/i965/Makefile |   27 -
 src/mesa/drivers/dri/i965/Makefile.am  |   81 
 src/mesa/drivers/dri/i965/Makefile.sources |8 ++--
 7 files changed, 106 insertions(+), 35 deletions(-)

diff --git a/.gitignore b/.gitignore
index a6243bf..a4394b6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,7 @@
 *.dll
 *.exe
 *.ilk
+*.lo
 *.o
 *.obj
 *.os
@@ -19,9 +20,11 @@
 *~
 depend
 depend.bak
+bin/ltmain.sh
 lib
 lib64
 configure
+configure.lineno
 autom4te.cache
 aclocal.m4
 config.log
@@ -30,5 +33,6 @@ cscope*
 .scon*
 config.py
 build
+libtool
 manifest.txt
 .dir-locals.el
diff --git a/configs/linux-dri b/configs/linux-dri
index e63790e..dde6408 100644
--- a/configs/linux-dri
+++ b/configs/linux-dri
@@ -62,7 +62,7 @@ GALLIUM_WINSYS_DIRS = sw sw/xlib drm/vmware drm/intel svga/drm
 GALLIUM_TARGET_DIRS = dri-vmwgfx
 GALLIUM_STATE_TRACKERS_DIRS = egl dri
 
-DRI_DIRS = i915 i965 nouveau r200 radeon swrast
+DRI_DIRS = i915 nouveau r200 radeon swrast
 
 INTEL_LIBS = $(shell $(PKG_CONFIG) --libs libdrm_intel)
 INTEL_CFLAGS = $(shell $(PKG_CONFIG) --cflags libdrm_intel)
diff --git a/configure.ac b/configure.ac
index 7c50e3c..1a120ec 100644
--- a/configure.ac
+++ b/configure.ac
@@ -18,6 +18,9 @@ AC_CONFIG_AUX_DIR([bin])
 AC_CANONICAL_HOST
 AM_INIT_AUTOMAKE([foreign])
 
+LT_PREREQ([2.2])
+LT_INIT([disable-static])
+
 dnl Save user CFLAGS and CXXFLAGS so one can override the default ones
 USER_CFLAGS=$CFLAGS
 USER_CXXFLAGS=$CXXFLAGS
@@ -1282,9 +1285,18 @@ AC_SUBST([DRI_LIB_DEPS])
 case $DRI_DIRS in
 *i915*|*i965*)
 PKG_CHECK_MODULES([INTEL], [libdrm_intel = $LIBDRM_INTEL_REQUIRED])
+
+case $DRI_DIRS in
+*i965*)
+   HAVE_I965_DRI=yes;
+   ;;
+esac
+
 ;;
 esac
 
+AM_CONDITIONAL(HAVE_I965_DRI, test x$HAVE_I965_DRI = xyes)
+
 case $DRI_DIRS in
 *nouveau*)
 PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau = $LIBDRM_NOUVEAU_REQUIRED])
@@ -1924,6 +1936,7 @@ CXXFLAGS=$CXXFLAGS $USER_CXXFLAGS
 
 dnl Substitute the config
 AC_CONFIG_FILES([configs/autoconf
+   src/mesa/drivers/dri/i965/Makefile
tests/Makefile
tests/glx/Makefile])
 
diff --git a/src/mesa/drivers/dri/i965/Android.mk 
b/src/mesa/drivers/dri/i965/Android.mk
index ec4a761..fbc6fc0 100644
--- a/src/mesa/drivers/dri/i965/Android.mk
+++ b/src/mesa/drivers/dri/i965/Android.mk
@@ -41,9 +41,9 @@ LOCAL_C_INCLUDES := \
$(DRM_TOP)/intel
 
 LOCAL_SRC_FILES := \
-   $(i965_C_SOURCES) \
-   $(i965_CXX_SOURCES) \
-   $(i965_ASM_SOURCES)
+   $(i965_C_FILES) \
+   $(i965_CXX_FILES) \
+   $(i965_ASM_FILES)
 
 LOCAL_WHOLE_STATIC_LIBRARIES := \
$(MESA_DRI_WHOLE_STATIC_LIBRARIES)
diff --git a/src/mesa/drivers/dri/i965/Makefile 
b/src/mesa/drivers/dri/i965/Makefile
deleted file mode 100644
index 57af7a6..000
--- a/src/mesa/drivers/dri/i965/Makefile
+++ /dev/null
@@ -1,27 +0,0 @@
-TOP = ../../../../..
-MESA_TOP := $(TOP)
-
-# Import variables i965_*.
-include Makefile.sources
-
-include $(TOP)/configs/current
-
-LIBNAME = i965_dri.so
-
-include ../Makefile.defines
-
-C_SOURCES := \
-   $(i965_C_SOURCES) \
-   $(COMMON_SOURCES)
-
-CXX_SOURCES := $(i965_CXX_SOURCES)
-ASM_SOURCES := $(i965_ASM_SOURCES)
-DRIVER_DEFINES := $(addprefix -I, $(i965_INCLUDES))
-
-INCLUDES += $(INTEL_CFLAGS)
-DRI_LIB_DEPS += $(INTEL_LIBS)
-
-include ../Makefile.targets
-
-intel_decode.o: ../intel/intel_decode.c
-intel_tex_layout.o: ../intel/intel_tex_layout.c
diff --git a/src/mesa/drivers/dri/i965/Makefile.am 
b/src/mesa/drivers/dri/i965/Makefile.am
new file mode 100644
index 000..5512381
--- /dev/null
+++ b/src/mesa/drivers/dri/i965/Makefile.am
@@ -0,0 +1,81 @@
+
+
+# Copyright © 2011 Intel Corporation
+#
+# Permission is hereby granted, free of charge, to 

Demos (master): eglkms: Add gbm cflags and libs

2012-01-17 Thread Kristian Høgsberg
Module: Demos
Branch: master
Commit: 0e97cc1d00f5bb5fcb198104f94d93b390b332cf
URL:
http://cgit.freedesktop.org/mesa/demos/commit/?id=0e97cc1d00f5bb5fcb198104f94d93b390b332cf

Author: Kristian Høgsberg k...@bitplanet.net
Date:   Tue Jan 17 13:50:07 2012 -0500

eglkms: Add gbm cflags and libs

---

 src/egl/opengl/Makefile.am |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/egl/opengl/Makefile.am b/src/egl/opengl/Makefile.am
index 6df114d..0c7228f 100644
--- a/src/egl/opengl/Makefile.am
+++ b/src/egl/opengl/Makefile.am
@@ -80,5 +80,5 @@ eglgears_x11_LDADD = ../eglut/libeglut_x11.la
 egltri_x11_LDADD = ../eglut/libeglut_x11.la
 
 eglkms_SOURCES = eglkms.c
-eglkms_CFLAGS = $(AM_CFLAGS) $(DRM_CFLAGS)
-eglkms_LDADD = $(AM_LDFLAGS) $(DRM_LIBS)
+eglkms_CFLAGS = $(AM_CFLAGS) $(DRM_CFLAGS) $(GBM_CFLAGS)
+eglkms_LDADD = $(AM_LDFLAGS) $(DRM_LIBS) $(GBM_LIBS)

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


Mesa (master): r600g: rework IDIV/UDIV and implement MOD/UMOD (v2)

2012-01-17 Thread Dave Airlie
Module: Mesa
Branch: master
Commit: 4ba4853c0a613f771b44806cd5ce376838479802
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=4ba4853c0a613f771b44806cd5ce376838479802

Author: Vadim Girlin vadimgir...@gmail.com
Date:   Tue Jan 17 16:09:00 2012 +0400

r600g: rework IDIV/UDIV and implement MOD/UMOD (v2)

Signed-off-by: Vadim Girlin vadimgir...@gmail.com
Signed-off-by: Dave Airlie airl...@redhat.com

---

 src/gallium/drivers/r600/r600_asm.c|2 +
 src/gallium/drivers/r600/r600_shader.c |  724 ++--
 2 files changed, 593 insertions(+), 133 deletions(-)

diff --git a/src/gallium/drivers/r600/r600_asm.c 
b/src/gallium/drivers/r600/r600_asm.c
index 23350e2..7c76bd5 100644
--- a/src/gallium/drivers/r600/r600_asm.c
+++ b/src/gallium/drivers/r600/r600_asm.c
@@ -191,6 +191,8 @@ static inline unsigned int 
r600_bytecode_get_num_operands(struct r600_bytecode *
case EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_RNDNE:
case EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_NOT_INT:
case EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INTERP_LOAD_P0:
+   case EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_RECIP_INT:
+   case EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_RECIP_UINT:
return 1;
default: R600_ERR(
Need instruction operand number for 0x%x.\n, 
alu-inst);
diff --git a/src/gallium/drivers/r600/r600_shader.c 
b/src/gallium/drivers/r600/r600_shader.c
index 9d15d02..16e662d 100644
--- a/src/gallium/drivers/r600/r600_shader.c
+++ b/src/gallium/drivers/r600/r600_shader.c
@@ -2019,224 +2019,682 @@ static int tgsi_pow(struct r600_shader_ctx *ctx)
return tgsi_helper_tempx_replicate(ctx);
 }
 
-static int tgsi_idiv(struct r600_shader_ctx *ctx)
+static int tgsi_divmod(struct r600_shader_ctx *ctx, int mod, int signed_op)
 {
struct tgsi_full_instruction *inst = 
ctx-parse.FullToken.FullInstruction;
struct r600_bytecode_alu alu;
int i, r;
unsigned write_mask = inst-Dst[0].Register.WriteMask;
-   int last_inst = tgsi_last_instruction(write_mask);
int tmp0 = ctx-temp_reg;
int tmp1 = r600_get_temp(ctx);
-   int unsigned_op = (ctx-inst_info-tgsi_opcode == TGSI_OPCODE_UDIV);
+   int tmp2 = r600_get_temp(ctx);
+
+   /* Unsigned path:
+*
+* we need to represent src1 as src2*q + r, where q - quotient, r - 
remainder
+*
+* 1. tmp0.x = rcp (src2) = 2^32/src2 + e, where e is rounding error
+* 2. tmp0.z = lo (tmp0.x * src2)
+* 3. tmp0.w = -tmp0.z
+* 4. tmp0.y = hi (tmp0.x * src2)
+* 5. tmp0.z = (tmp0.y == 0 ? tmp0.w : tmp0.z)  = abs(lo(rcp*src2))
+* 6. tmp0.w = hi (tmp0.z * tmp0.x)= e, rounding error
+* 7. tmp1.x = tmp0.x - tmp0.w
+* 8. tmp1.y = tmp0.x + tmp0.w
+* 9. tmp0.x = (tmp0.y == 0 ? tmp1.y : tmp1.x)
+* 10. tmp0.z = hi(tmp0.x * src1) = q
+* 11. tmp0.y = lo (tmp0.z * src2) = src2*q = src1 - r
+*
+* 12. tmp0.w = src1 - tmp0.y   = r
+* 13. tmp1.x = tmp0.w = src2  = r = src2 (uint comparison)
+* 14. tmp1.y = src1 = tmp0.y  = r = 0 (uint comparison)
+*
+* if DIV
+*
+*   15. tmp1.z = tmp0.z + 1= q + 1
+*   16. tmp1.w = tmp0.z - 1= q - 1
+*
+* else MOD
+*
+*   15. tmp1.z = tmp0.w - src2 = r - src2
+*   16. tmp1.w = tmp0.w + src2 = r + src2
+*
+* endif
+*
+* 17. tmp1.x = tmp1.x  tmp1.y
+*
+* DIV: 18. tmp0.z = tmp1.x==0 ? tmp0.z : tmp1.z
+* MOD: 18. tmp0.z = tmp1.x==0 ? tmp0.w : tmp1.z
+*
+* 19. tmp0.z = tmp1.y==0 ? tmp1.w : tmp0.z
+* 20. dst = src2==0 ? MAX_UINT : tmp0.z
+*
+* Signed path:
+*
+* Same as unsigned, using abs values of the operands,
+* and fixing the sign of the result in the end.
+*/
 
-   /* tmp0 = float(src0) */
for (i = 0; i  4; i++) {
if (!(write_mask  (1i)))
continue;
 
-   memset(alu, 0, sizeof(struct r600_bytecode_alu));
+   if (signed_op) {
 
-   if (unsigned_op)
-   alu.inst = 
CTX_INST(V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_UINT_TO_FLT);
-   else
-   alu.inst = 
CTX_INST(V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_INT_TO_FLT);
+   /* tmp2.x = -src0 */
+   memset(alu, 0, sizeof(struct r600_bytecode_alu));
+   alu.inst = 
CTX_INST(V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SUB_INT);
 
-   alu.dst.sel = tmp0;
-   alu.dst.chan = i;
-   alu.dst.write = 1;
+   alu.dst.sel = tmp2;
+   alu.dst.chan = 0;
+   alu.dst.write = 1;
 
-   

Mesa (master): scons: Add Haiku build support

2012-01-17 Thread Jose Fonseca
Module: Mesa
Branch: master
Commit: 64ae209d50e2d28f46a3f0c6880e40e94ba23569
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=64ae209d50e2d28f46a3f0c6880e40e94ba23569

Author: Alexander von Gluck IV kallis...@unixzen.com
Date:   Mon Jan 16 12:42:05 2012 +

scons: Add Haiku build support

Enables building stock Mesa under the Haiku operating system.

---

 common.py  |2 +-
 scons/gallium.py   |2 ++
 src/SConscript |5 +++--
 src/gallium/SConscript |   14 ++
 src/glu/sgi/SConscript |   16 +++-
 5 files changed, 27 insertions(+), 12 deletions(-)

diff --git a/common.py b/common.py
index 5578f72..2674f32 100644
--- a/common.py
+++ b/common.py
@@ -83,7 +83,7 @@ def AddOptions(opts):
opts.Add(EnumOption('machine', 'use machine-specific assembly code', 
default_machine,

 allowed_values=('generic', 'ppc', 'x86', 'x86_64')))
opts.Add(EnumOption('platform', 'target platform', host_platform,
-   
 allowed_values=('linux', 'windows', 'darwin', 'cygwin', 'sunos', 
'freebsd8')))
+   
 allowed_values=('linux', 'windows', 'darwin', 'cygwin', 'sunos', 
'freebsd8', 'haiku')))
opts.Add(BoolOption('embedded', 'embedded build', 'no'))
opts.Add('toolchain', 'compiler toolchain', default_toolchain)
opts.Add(BoolOption('gles', 'EXPERIMENTAL: enable OpenGL ES support', 
'no'))
diff --git a/scons/gallium.py b/scons/gallium.py
index 221d184..5a0c6fe 100755
--- a/scons/gallium.py
+++ b/scons/gallium.py
@@ -289,6 +289,8 @@ def generate(env):
 cppdefines += ['_DEBUG']
 if platform == 'windows':
 cppdefines += ['PIPE_SUBSYSTEM_WINDOWS_USER']
+if platform == 'haiku':
+cppdefines += ['BEOS_THREADS']
 if env['embedded']:
 cppdefines += ['PIPE_SUBSYSTEM_EMBEDDED']
 env.Append(CPPDEFINES = cppdefines)
diff --git a/src/SConscript b/src/SConscript
index 0a30838..ba6be0b 100644
--- a/src/SConscript
+++ b/src/SConscript
@@ -22,10 +22,11 @@ SConscript('mesa/SConscript')
 SConscript('mapi/vgapi/SConscript')
 
 if not env['embedded']:
-if env['platform'] not in ['windows', 'darwin']:
+if env['platform'] not in ['windows', 'darwin', 'haiku']:
 SConscript('glx/SConscript')
-if env['platform'] not in ['darwin']:
+if env['platform'] not in ['darwin', 'haiku']:
 SConscript('egl/main/SConscript')
+if env['platform'] not in ['darwin']:
 SConscript('glu/sgi/SConscript')
 
 if env['gles']:
diff --git a/src/gallium/SConscript b/src/gallium/SConscript
index 4f46506..8efd04c 100644
--- a/src/gallium/SConscript
+++ b/src/gallium/SConscript
@@ -10,16 +10,22 @@ SConscript('auxiliary/SConscript')
 # Drivers
 #
 
+# These are common and work across all platforms
 SConscript([
 'drivers/galahad/SConscript',
 'drivers/identity/SConscript',
-'drivers/llvmpipe/SConscript',
 'drivers/rbug/SConscript',
 'drivers/softpipe/SConscript',
-'drivers/svga/SConscript',
 'drivers/trace/SConscript',
 ])
 
+# These drivers do not build on Haiku
+if env['platform'] not in ['haiku']:
+SConscript([
+'drivers/llvmpipe/SConscript',
+'drivers/svga/SConscript',
+])
+
 if not env['msvc']:
 # These drivers do not build on MSVC compilers
 SConscript([
@@ -53,7 +59,7 @@ SConscript('winsys/sw/null/SConscript')
 
 if not env['embedded']:
 SConscript('state_trackers/vega/SConscript')
-if env['platform'] not in ['darwin']:
+if env['platform'] not in ['darwin', 'haiku']:
 SConscript('state_trackers/egl/SConscript')
 
 if env['x11']:
@@ -83,7 +89,7 @@ SConscript([
 ])
 
 if not env['embedded']:
-if env['platform'] not in ['darwin']:
+if env['platform'] not in ['darwin', 'haiku']:
 SConscript([
 'targets/egl-static/SConscript'
 ])
diff --git a/src/glu/sgi/SConscript b/src/glu/sgi/SConscript
index 94c7426..97405d8 100644
--- a/src/glu/sgi/SConscript
+++ b/src/glu/sgi/SConscript
@@ -122,12 +122,18 @@ else:
 ])
 target = 'glu'
 
-glu = env.SharedLibrary(
-target = target,
-source = sources
-)
+if env['platform'] == 'haiku':
+glu = env.StaticLibrary(
+target = target,
+source = sources
+)
+else:
+glu = env.SharedLibrary(
+target = target,
+source = sources
+)
+env.Alias('glu', env.InstallSharedLibrary(glu, version=(1, 3, 0)))
 
-env.Alias('glu', env.InstallSharedLibrary(glu, version=(1, 3, 0)))
 
 if env['platform'] == 'windows':
 glu = env.FindIxes(glu, 'LIBPREFIX', 'LIBSUFFIX')

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


Mesa (master): r600g: fix USLT for r600-eg

2012-01-17 Thread Alex Deucher
Module: Mesa
Branch: master
Commit: 7383e754b70414b35c10c216034a8dc95f6f67b4
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=7383e754b70414b35c10c216034a8dc95f6f67b4

Author: Vadim Girlin vadimgir...@gmail.com
Date:   Tue Jan 17 02:46:08 2012 +0400

r600g: fix USLT for r600-eg

---

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

diff --git a/src/gallium/drivers/r600/r600_shader.c 
b/src/gallium/drivers/r600/r600_shader.c
index 16e662d..95c6d1e 100644
--- a/src/gallium/drivers/r600/r600_shader.c
+++ b/src/gallium/drivers/r600/r600_shader.c
@@ -4631,7 +4631,7 @@ static struct r600_shader_tgsi_instruction 
r600_shader_tgsi_instruction[] = {
{TGSI_OPCODE_USEQ,  0, V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETE_INT, 
tgsi_op2},
{TGSI_OPCODE_USGE,  0, V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETGE_UINT, 
tgsi_op2},
{TGSI_OPCODE_USHR,  0, V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_LSHR_INT, 
tgsi_op2_trans},
-   {TGSI_OPCODE_USLT,  0, V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETGT_INT, 
tgsi_op2_swap},
+   {TGSI_OPCODE_USLT,  0, V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETGT_UINT, 
tgsi_op2_swap},
{TGSI_OPCODE_USNE,  0, V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETNE_INT, 
tgsi_op2_swap},
{TGSI_OPCODE_SWITCH,0, V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_NOP, 
tgsi_unsupported},
{TGSI_OPCODE_CASE,  0, V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_NOP, 
tgsi_unsupported},
@@ -4805,7 +4805,7 @@ static struct r600_shader_tgsi_instruction 
eg_shader_tgsi_instruction[] = {
{TGSI_OPCODE_USEQ,  0, EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETE_INT, 
tgsi_op2},
{TGSI_OPCODE_USGE,  0, 
EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETGE_UINT, tgsi_op2},
{TGSI_OPCODE_USHR,  0, EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_LSHR_INT, 
tgsi_op2},
-   {TGSI_OPCODE_USLT,  0, EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETGT_INT, 
tgsi_op2_swap},
+   {TGSI_OPCODE_USLT,  0, 
EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETGT_UINT, tgsi_op2_swap},
{TGSI_OPCODE_USNE,  0, EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_SETNE_INT, 
tgsi_op2},
{TGSI_OPCODE_SWITCH,0, EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_NOP, 
tgsi_unsupported},
{TGSI_OPCODE_CASE,  0, EG_V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_NOP, 
tgsi_unsupported},

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


Mesa (master): r600g: fix recip_uint on r600.

2012-01-17 Thread Dave Airlie
Module: Mesa
Branch: master
Commit: ba59a1a0d817566576e20e66d74f1917d958119e
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ba59a1a0d817566576e20e66d74f1917d958119e

Author: Dave Airlie airl...@redhat.com
Date:   Wed Jan 18 06:49:34 2012 +1000

r600g: fix recip_uint on r600.

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

---

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

diff --git a/src/gallium/drivers/r600/r600_asm.c 
b/src/gallium/drivers/r600/r600_asm.c
index 7c76bd5..8234744 100644
--- a/src/gallium/drivers/r600/r600_asm.c
+++ b/src/gallium/drivers/r600/r600_asm.c
@@ -103,6 +103,7 @@ static inline unsigned int 
r600_bytecode_get_num_operands(struct r600_bytecode *
case V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_LOG_IEEE:
case V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_RECIP_CLAMPED:
case V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_RECIP_IEEE:
+   case V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_RECIP_UINT:
case V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_RECIPSQRT_CLAMPED:
case V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_RECIPSQRT_IEEE:
case V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_FLT_TO_INT:

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


Mesa (master): r200: fix fog coordinate emit

2012-01-17 Thread Alex Deucher
Module: Mesa
Branch: master
Commit: afdd6f8c34705eae5048da03329750836bcecf44
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=afdd6f8c34705eae5048da03329750836bcecf44

Author: Alex Deucher alexander.deuc...@amd.com
Date:   Tue Jan 17 17:06:18 2012 -0500

r200: fix fog coordinate emit

Noticed by dungeon on phoronix:
http://phoronix.com/forums/showthread.php?65408-Radeon-R100-R200-Mesa-Driver-Sees-Attentionp=247018#post247018

Signed-off-by: Alex Deucher alexander.deuc...@amd.com

Note: this is a candidate for the stable branches.

---

 src/mesa/drivers/dri/r200/r200_maos_arrays.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/mesa/drivers/dri/r200/r200_maos_arrays.c 
b/src/mesa/drivers/dri/r200/r200_maos_arrays.c
index b622902..dee7303 100644
--- a/src/mesa/drivers/dri/r200/r200_maos_arrays.c
+++ b/src/mesa/drivers/dri/r200/r200_maos_arrays.c
@@ -83,7 +83,7 @@ static void r200_emit_vecfog(struct gl_context *ctx, struct 
radeon_aos *aos,
count = 1;
aos-stride = 0;
} else {
-   radeonAllocDmaRegion(rmesa, aos-bo, aos-offset, size * 4, 
32);
+   radeonAllocDmaRegion(rmesa, aos-bo, aos-offset, size * 
count * 4, 32);
aos-stride = size;
}
 

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


Mesa (master): radeon: fix fog coordinate emit

2012-01-17 Thread Alex Deucher
Module: Mesa
Branch: master
Commit: e77c495d09105a1b6a13fd62d0d3585b019e1c66
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e77c495d09105a1b6a13fd62d0d3585b019e1c66

Author: Alex Deucher alexander.deuc...@amd.com
Date:   Tue Jan 17 17:14:19 2012 -0500

radeon: fix fog coordinate emit

Noticed by dungeon on phoronix:
http://phoronix.com/forums/showthread.php?65408-Radeon-R100-R200-Mesa-Driver-Sees-Attentionp=247018#post247018

Signed-off-by: Alex Deucher alexander.deuc...@amd.com

Note: this is a candidate for the stable branches.

---

 src/mesa/drivers/dri/radeon/radeon_maos_arrays.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/mesa/drivers/dri/radeon/radeon_maos_arrays.c 
b/src/mesa/drivers/dri/radeon/radeon_maos_arrays.c
index 94fe7e4..05aa2cb 100644
--- a/src/mesa/drivers/dri/radeon/radeon_maos_arrays.c
+++ b/src/mesa/drivers/dri/radeon/radeon_maos_arrays.c
@@ -66,7 +66,7 @@ static void emit_vecfog(struct gl_context *ctx, struct 
radeon_aos *aos,
   aos-stride = 0;
}
else {
-  radeonAllocDmaRegion(rmesa, aos-bo, aos-offset, size * 4, 32);
+  radeonAllocDmaRegion(rmesa, aos-bo, aos-offset, size * count * 4, 
32);
   aos-stride = size;
}
 

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


Mesa (master): radeon: share common fog code between radeon and r200

2012-01-17 Thread Alex Deucher
Module: Mesa
Branch: master
Commit: 94556f359450acebe87d6c9b4f4fd8ccf78589d8
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=94556f359450acebe87d6c9b4f4fd8ccf78589d8

Author: Alex Deucher alexander.deuc...@amd.com
Date:   Tue Jan 17 18:09:25 2012 -0500

radeon: share common fog code between radeon and r200

Signed-off-by: Alex Deucher alexander.deuc...@amd.com

---

 src/mesa/drivers/dri/r200/Makefile   |3 +-
 src/mesa/drivers/dri/r200/r200_context.c |3 +-
 src/mesa/drivers/dri/r200/r200_maos_arrays.c |   40 +--
 src/mesa/drivers/dri/r200/r200_tcl.c |   84 ---
 src/mesa/drivers/dri/r200/r200_tcl.h |4 -
 src/mesa/drivers/dri/r200/radeon_fog.c   |1 +
 src/mesa/drivers/dri/r200/radeon_fog.h   |1 +
 src/mesa/drivers/dri/radeon/Makefile |3 +-
 src/mesa/drivers/dri/radeon/radeon_context.c |1 +
 src/mesa/drivers/dri/radeon/radeon_dma.c |   36 ++
 src/mesa/drivers/dri/radeon/radeon_dma.h |2 +
 src/mesa/drivers/dri/radeon/radeon_fog.c |  125 ++
 src/mesa/drivers/dri/radeon/radeon_fog.h |   44 
 src/mesa/drivers/dri/radeon/radeon_maos_arrays.c |   51 +
 src/mesa/drivers/dri/radeon/radeon_maos_verts.c  |2 +-
 src/mesa/drivers/dri/radeon/radeon_tcl.c |   83 --
 src/mesa/drivers/dri/radeon/radeon_tcl.h |3 -
 17 files changed, 227 insertions(+), 259 deletions(-)

diff --git a/src/mesa/drivers/dri/r200/Makefile 
b/src/mesa/drivers/dri/r200/Makefile
index 3362d04..e53d64b 100644
--- a/src/mesa/drivers/dri/r200/Makefile
+++ b/src/mesa/drivers/dri/r200/Makefile
@@ -20,7 +20,8 @@ RADEON_COMMON_SOURCES = \
radeon_span.c \
radeon_texture.c \
radeon_tex_copy.c \
-   radeon_tile.c
+   radeon_tile.c \
+   radeon_fog.c
 
 DRIVER_SOURCES = r200_context.c \
 r200_ioctl.c \
diff --git a/src/mesa/drivers/dri/r200/r200_context.c 
b/src/mesa/drivers/dri/r200/r200_context.c
index d7a6489..244973e 100644
--- a/src/mesa/drivers/dri/r200/r200_context.c
+++ b/src/mesa/drivers/dri/r200/r200_context.c
@@ -60,6 +60,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
SOFTWARE.
 #include r200_vertprog.h
 #include radeon_queryobj.h
 #include r200_blit.h
+#include radeon_fog.h
 
 #include radeon_span.h
 
@@ -230,7 +231,7 @@ GLboolean r200CreateContext( gl_api api,
rmesa-radeon.radeonScreen = screen;
r200_init_vtbl(rmesa-radeon);
/* init exp fog table data */
-   r200InitStaticFogData();
+   radeonInitStaticFogData();
 
/* Parse configuration files.
 * Do this here so that initialMaxAnisotropy is set before we create
diff --git a/src/mesa/drivers/dri/r200/r200_maos_arrays.c 
b/src/mesa/drivers/dri/r200/r200_maos_arrays.c
index dee7303..973dcaf 100644
--- a/src/mesa/drivers/dri/r200/r200_maos_arrays.c
+++ b/src/mesa/drivers/dri/r200/r200_maos_arrays.c
@@ -70,36 +70,6 @@ do { \
 } while (0)
 #endif
 
-static void r200_emit_vecfog(struct gl_context *ctx, struct radeon_aos *aos,
-GLvoid *data, int stride, int count)
-{
-   radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
-   GLfloat *out;
-   int i;
-   int size = 1;
-
-   if (stride == 0) {
-   radeonAllocDmaRegion(rmesa, aos-bo, aos-offset, size * 4, 
32);
-   count = 1;
-   aos-stride = 0;
-   } else {
-   radeonAllocDmaRegion(rmesa, aos-bo, aos-offset, size * 
count * 4, 32);
-   aos-stride = size;
-   }
-
-   aos-components = size;
-   aos-count = count;
-
-   radeon_bo_map(aos-bo, 1);
-   out = (GLfloat*)((char*)aos-bo-ptr + aos-offset);
-   for (i = 0; i  count; i++) {
- out[0] = r200ComputeFogBlendFactor( ctx, *(GLfloat *)data );
- out++;
- data += stride;
-   }
-   radeon_bo_unmap(aos-bo);
-}
-
 /* Emit any changed arrays to new GART memory, re-emit a packet to
  * update the arrays.  
  */
@@ -153,11 +123,11 @@ void r200EmitArrays( struct gl_context *ctx, GLubyte 
*vimap_rev )
   VB-AttribPtr[attrib]-stride,
   count);
   else
-r200_emit_vecfog( ctx,
-  (rmesa-radeon.tcl.aos[nr]),
-  (char *)VB-AttribPtr[attrib]-data,
-  VB-AttribPtr[attrib]-stride,
-  count);
+rcommon_emit_vecfog( ctx,
+ (rmesa-radeon.tcl.aos[nr]),
+ (char *)VB-AttribPtr[attrib]-data,
+ VB-AttribPtr[attrib]-stride,
+ count);
}
vfmt0 |= R200_VTX_DISCRETE_FOG;
goto after_emit;
diff --git 

Mesa (master): mesa: Add condition in glGetTexImage for zero size textures

2012-01-17 Thread Anuj Phogat
Module: Mesa
Branch: master
Commit: f1a9a9bcd19dcbb8a0a4bd7299400cb418970f99
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=f1a9a9bcd19dcbb8a0a4bd7299400cb418970f99

Author: Anuj Phogat anuj.pho...@gmail.com
Date:   Mon Jan 16 16:15:30 2012 -0800

mesa: Add condition in glGetTexImage for zero size textures

TestMipMaps() function in src/OGLconform/textureNPOT.c calls glTexImage2D()
with width = 0. Texture with zero size skips miptree allocation due to a
condition in function _mesa_store_teximage3d(). While calling glGetTexImage()
it results in assertion failure in intel_map_texture_image() due to null mt
pointer.

This patch fixes the issue by detecting the zero size texture early in
glGetTexImage and glGetCompressedTexImage functions. In such a case function
simply returns doing nothing.
Verified that below mentioned bug is fixed by this patch.

https://bugs.freedesktop.org/show_bug.cgi?id=42334

NOTE: This is a candidate for stable branches

Signed-off-by: Anuj Phogat anuj.pho...@gmail.com
Reviewed-by: Brian Paul bri...@vmware.com

---

 src/mesa/main/texgetimage.c |6 ++
 src/mesa/main/teximage.h|9 -
 2 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/src/mesa/main/texgetimage.c b/src/mesa/main/texgetimage.c
index f848aa8..8c85c1e 100644
--- a/src/mesa/main/texgetimage.c
+++ b/src/mesa/main/texgetimage.c
@@ -837,6 +837,9 @@ _mesa_GetnTexImageARB( GLenum target, GLint level, GLenum 
format,
texObj = _mesa_get_current_tex_object(ctx, target);
texImage = _mesa_select_tex_image(ctx, texObj, target, level);
 
+   if (_mesa_is_zero_size_texture(texImage))
+  return;
+
if (MESA_VERBOSE  (VERBOSE_API | VERBOSE_TEXTURE)) {
   _mesa_debug(ctx, glGetTexImage(tex %u) format = %s, w=%d, h=%d,
dstFmt=0x%x, dstType=0x%x\n,
@@ -970,6 +973,9 @@ _mesa_GetnCompressedTexImageARB(GLenum target, GLint level, 
GLsizei bufSize,
texObj = _mesa_get_current_tex_object(ctx, target);
texImage = _mesa_select_tex_image(ctx, texObj, target, level);
 
+   if (_mesa_is_zero_size_texture(texImage))
+  return;
+
if (MESA_VERBOSE  (VERBOSE_API | VERBOSE_TEXTURE)) {
   _mesa_debug(ctx,
   glGetCompressedTexImage(tex %u) format = %s, w=%d, h=%d\n,
diff --git a/src/mesa/main/teximage.h b/src/mesa/main/teximage.h
index 12af0e6..e2bdaca 100644
--- a/src/mesa/main/teximage.h
+++ b/src/mesa/main/teximage.h
@@ -44,7 +44,14 @@ _mesa_is_cube_face(GLenum target)
target = GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB);
 }
 
-
+/** Is any of the dimensions of given texture equal to zero? */
+static inline GLboolean
+_mesa_is_zero_size_texture(const struct gl_texture_image *texImage)
+{
+   return (texImage-Width == 0 ||
+   texImage-Height == 0 ||
+   texImage-Depth == 0);
+}
 
 /** \name Internal functions */
 /*@{*/

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


Mesa (master): i965: Add . gitignore file to exclude automake build artifacts from git.

2012-01-17 Thread Paul Berry
Module: Mesa
Branch: master
Commit: c03ad08e8dff99c3042a4ab3b6b979cf428aa6fa
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c03ad08e8dff99c3042a4ab3b6b979cf428aa6fa

Author: Paul Berry stereotype...@gmail.com
Date:   Tue Jan 17 12:35:38 2012 -0800

i965: Add .gitignore file to exclude automake build artifacts from git.

With the conversion to automake in commit
e326480e4ebe8687948041c2dc5f5b7595559a2e, several additional build
artifacts are created:

  src/mesa/drivers/dri/i965/.deps/
  src/mesa/drivers/dri/i965/.libs/
  src/mesa/drivers/dri/i965/Makefile
  src/mesa/drivers/dri/i965/Makefile.in
  src/mesa/drivers/dri/i965/i965_dri.la
  src/mesa/drivers/dri/i965/i965_symbols_test

This patch adds all of these files to .gitignore.

Reviewed-by: Matt Turner matts...@gmail.com
Reviewed-by: Kenneth Graunke kenn...@whitecape.org

---

 src/mesa/drivers/dri/i965/.gitignore |6 ++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/.gitignore 
b/src/mesa/drivers/dri/i965/.gitignore
new file mode 100644
index 000..1557571
--- /dev/null
+++ b/src/mesa/drivers/dri/i965/.gitignore
@@ -0,0 +1,6 @@
+.deps
+.libs
+Makefile
+Makefile.in
+i965_dri.la
+i965_symbols_test

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


Mesa (master): intel: Return if pointer to intel_context is null

2012-01-17 Thread Anuj Phogat
Module: Mesa
Branch: master
Commit: ce1c949b162260cec84431913f7aac83cb1b938e
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ce1c949b162260cec84431913f7aac83cb1b938e

Author: Anuj Phogat anuj.pho...@gmail.com
Date:   Tue Jan 17 13:21:52 2012 -0800

intel: Return if pointer to intel_context is null

It is better to test if(intel == NULL) and simply return in that case.

Signed-off-by: Anuj Phogat anuj.pho...@gmail.com
Reviewed-by: Chad Versace chad.vers...@linux.intel.com

---

 src/mesa/drivers/dri/intel/intel_screen.c |   14 +++---
 1 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/mesa/drivers/dri/intel/intel_screen.c 
b/src/mesa/drivers/dri/intel/intel_screen.c
index a08f3d1..0566907 100644
--- a/src/mesa/drivers/dri/intel/intel_screen.c
+++ b/src/mesa/drivers/dri/intel/intel_screen.c
@@ -114,16 +114,16 @@ intelDRI2Flush(__DRIdrawable *drawable)
 {
GET_CURRENT_CONTEXT(ctx);
struct intel_context *intel = intel_context(ctx);
+   if (intel == NULL)
+  return;
 
-   if (intel != NULL) {
-  if (intel-gen  4)
-INTEL_FIREVERTICES(intel);
+   if (intel-gen  4)
+  INTEL_FIREVERTICES(intel);
 
-  intel-need_throttle = true;
+   intel-need_throttle = true;
 
-  if (intel-batch.used)
-intel_batchbuffer_flush(intel);
-   }
+   if (intel-batch.used)
+  intel_batchbuffer_flush(intel);
 }
 
 static const struct __DRI2flushExtensionRec intelFlushExtension = {

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


Mesa (master): i965/gen5: Fix rendering of depth buffers without stencil [ v2]

2012-01-17 Thread Chad Versace
Module: Mesa
Branch: master
Commit: a6dd4bf5fcce2520ab199201fdd1ad155457d781
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a6dd4bf5fcce2520ab199201fdd1ad155457d781

Author: Chad Versace chad.vers...@linux.intel.com
Date:   Tue Jan 17 15:41:46 2012 -0800

i965/gen5: Fix rendering of depth buffers without stencil [v2]

Fixes the following OGLConform tests on gen5:
depth-stencil(misc.state_on.depth_int)
fbo_db_ARBfp(basic.OnlyDepthBuffDrawBufferRender)

The problem was that, if the depth buffer's Mesa format was X8_Z24, then
we emitted the hardware format D24_UNORM_X8. But, on gen5, D24_UNORM_S8
must be emitted.

This bug was introduced by:
commit d84a180417d1eabd680554970f1eaaa93abcd41e
Author: Eric Anholt e...@anholt.net
i965: Base HW depth format setup based on MESA_FORMAT, not bpp.

v2: Deref 'intel' directly. Move the branch for newer chipset to top.
Quote the PRM. As requested by Ken.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=43408
Note: This is a candidate for the 8.0 branch.
Reported-by: Xunx Fang xunx.f...@intel.com
Reviewed-by: Kenneth Graunke kenn...@whitecape.org
Signed-off-by: Chad Versace chad.vers...@linux.intel.com

---

 src/mesa/drivers/dri/i965/brw_misc_state.c |   17 +++--
 1 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_misc_state.c 
b/src/mesa/drivers/dri/i965/brw_misc_state.c
index b6bca4b..8e59a47 100644
--- a/src/mesa/drivers/dri/i965/brw_misc_state.c
+++ b/src/mesa/drivers/dri/i965/brw_misc_state.c
@@ -223,10 +223,23 @@ brw_depthbuffer_format(struct brw_context *brw)
case MESA_FORMAT_Z32_FLOAT:
   return BRW_DEPTHFORMAT_D32_FLOAT;
case MESA_FORMAT_X8_Z24:
-  if (intel-gen = 5)
+  if (intel-gen = 6) {
 return BRW_DEPTHFORMAT_D24_UNORM_X8_UINT;
-  else /* Gen4 doesn't support X8; use S8 instead. */
+  } else {
+/* Use D24_UNORM_S8, not D24_UNORM_X8.
+ *
+ * D24_UNORM_X8 was not introduced until Gen5. (See the Ironlake PRM,
+ * Volume 2, Part 1, Section 8.4.6 Depth/Stencil Buffer State, Bits
+ * 3DSTATE_DEPTH_BUFFER.Surface_Format).
+ *
+ * However, on Gen5, D24_UNORM_X8 may be used only if separate
+ * stencil is enabled, and we never enable it. From the Ironlake PRM,
+ * same section as above, Bit 
3DSTATE_DEPTH_BUFFER.Separate_Stencil_Buffer_Enable:
+ * If this field is disabled, the Surface Format of the depth
+ * buffer cannot be D24_UNORM_X8_UINT.
+ */
 return BRW_DEPTHFORMAT_D24_UNORM_S8_UINT;
+  }
case MESA_FORMAT_S8_Z24:
   return BRW_DEPTHFORMAT_D24_UNORM_S8_UINT;
case MESA_FORMAT_Z32_FLOAT_X24S8:

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