Mesa (master): radeon/llvm: fix calculation of max register number

2012-08-01 Thread Christian König
Module: Mesa
Branch: master
Commit: 6574fe3c4a9e36791cde88dfd73429ba4faf3215
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=6574fe3c4a9e36791cde88dfd73429ba4faf3215

Author: Christian König deathsim...@vodafone.de
Date:   Tue Jul 31 18:30:45 2012 +0200

radeon/llvm: fix calculation of max register number

Signed-off-by: Christian König deathsim...@vodafone.de
Reviewed-by: Tom Stellard thomas.stell...@amd.com

---

 src/gallium/drivers/radeon/SICodeEmitter.cpp |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/gallium/drivers/radeon/SICodeEmitter.cpp 
b/src/gallium/drivers/radeon/SICodeEmitter.cpp
index a7647aa..9fc4aab 100644
--- a/src/gallium/drivers/radeon/SICodeEmitter.cpp
+++ b/src/gallium/drivers/radeon/SICodeEmitter.cpp
@@ -154,7 +154,7 @@ void SICodeEmitter::InitProgramInfo(MachineFunction MF) {
   assert(!Unknown register class);
 }
 hwReg = RI-getHWRegNum(reg);
-maxUsed = ((hwReg + 1) * width) - 1;
+maxUsed = hwReg + width - 1;
 if (isSGPR) {
   MaxSGPR = maxUsed  MaxSGPR ? maxUsed : MaxSGPR;
 } else {

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


Mesa (master): radeon/r200: fix bogus assert/scissor wrt width/height 2048

2012-08-01 Thread Roland Scheidegger
Module: Mesa
Branch: master
Commit: 5b88a2a22daae4d09596804d8edc6b8796d05150
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=5b88a2a22daae4d09596804d8edc6b8796d05150

Author: Roland Scheidegger srol...@vmware.com
Date:   Fri Jul 27 04:03:45 2012 +0200

radeon/r200: fix bogus assert/scissor wrt width/height 2048

This addresses one issue raised in bug #51658 discovered by Eugene St Leger.
The assert is bogus since there's no problem with texture width/height being
2048 (the width/height programmed is width/height minus one).
OTOH though the programmed size for scissor rect should be width/height
minus one too otherwise bad things may happen (as it is inclusive, and there's
not enough bits for more than a value of 2047).

---

 src/mesa/drivers/dri/r200/r200_blit.c |8 
 src/mesa/drivers/dri/radeon/radeon_blit.c |8 
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/src/mesa/drivers/dri/r200/r200_blit.c 
b/src/mesa/drivers/dri/r200/r200_blit.c
index fbded53..e3124b3 100644
--- a/src/mesa/drivers/dri/r200/r200_blit.c
+++ b/src/mesa/drivers/dri/r200/r200_blit.c
@@ -108,8 +108,8 @@ static void inline emit_tx_setup(struct r200_context *r200,
 uint32_t txformat = R200_TXFORMAT_NON_POWER2;
 BATCH_LOCALS(r200-radeon);
 
-assert(width = 2047);
-assert(height = 2047);
+assert(width = 2048);
+assert(height = 2048);
 assert(offset % 32 == 0);
 
 /* XXX others?  BE/LE? */
@@ -341,8 +341,8 @@ static inline void emit_cb_setup(struct r200_context *r200,
 OUT_BATCH_REGVAL(R200_RE_AUX_SCISSOR_CNTL, 0);
 OUT_BATCH_REGVAL(R200_RE_CNTL, 0);
 OUT_BATCH_REGVAL(RADEON_RE_TOP_LEFT, 0);
-OUT_BATCH_REGVAL(RADEON_RE_WIDTH_HEIGHT, ((width  RADEON_RE_WIDTH_SHIFT) 
|
- (height  
RADEON_RE_HEIGHT_SHIFT)));
+OUT_BATCH_REGVAL(RADEON_RE_WIDTH_HEIGHT, (((width - 1)  
RADEON_RE_WIDTH_SHIFT) |
+ ((height - 1)  
RADEON_RE_HEIGHT_SHIFT)));
 OUT_BATCH_REGVAL(RADEON_RB3D_PLANEMASK, 0x);
 OUT_BATCH_REGVAL(RADEON_RB3D_BLENDCNTL, RADEON_SRC_BLEND_GL_ONE | 
RADEON_DST_BLEND_GL_ZERO);
 OUT_BATCH_REGVAL(RADEON_RB3D_CNTL, dst_format);
diff --git a/src/mesa/drivers/dri/radeon/radeon_blit.c 
b/src/mesa/drivers/dri/radeon/radeon_blit.c
index 4233221..b4932a2 100644
--- a/src/mesa/drivers/dri/radeon/radeon_blit.c
+++ b/src/mesa/drivers/dri/radeon/radeon_blit.c
@@ -102,8 +102,8 @@ static void inline emit_tx_setup(struct r100_context *r100,
 uint32_t txformat = RADEON_TXFORMAT_NON_POWER2;
 BATCH_LOCALS(r100-radeon);
 
-assert(width = 2047);
-assert(height = 2047);
+assert(width = 2048);
+assert(height = 2048);
 assert(offset % 32 == 0);
 
 /* XXX others?  BE/LE? */
@@ -216,8 +216,8 @@ static inline void emit_cb_setup(struct r100_context *r100,
 
 BEGIN_BATCH_NO_AUTOSTATE(18);
 OUT_BATCH_REGVAL(RADEON_RE_TOP_LEFT, 0);
-OUT_BATCH_REGVAL(RADEON_RE_WIDTH_HEIGHT, ((width  RADEON_RE_WIDTH_SHIFT) 
|
- (height  
RADEON_RE_HEIGHT_SHIFT)));
+OUT_BATCH_REGVAL(RADEON_RE_WIDTH_HEIGHT, (((width - 1)  
RADEON_RE_WIDTH_SHIFT) |
+ ((height - 1)  
RADEON_RE_HEIGHT_SHIFT)));
 OUT_BATCH_REGVAL(RADEON_RB3D_PLANEMASK, 0x);
 OUT_BATCH_REGVAL(RADEON_RB3D_BLENDCNTL, RADEON_SRC_BLEND_GL_ONE | 
RADEON_DST_BLEND_GL_ZERO);
 OUT_BATCH_REGVAL(RADEON_RB3D_CNTL, dst_format);

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


Mesa (master): radeon/r200: fix bogus clears

2012-08-01 Thread Roland Scheidegger
Module: Mesa
Branch: master
Commit: de694b6b10b7ce23a00cd7296a955f162704ee62
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=de694b6b10b7ce23a00cd7296a955f162704ee62

Author: Roland Scheidegger srol...@vmware.com
Date:   Fri Jul 27 03:43:11 2012 +0200

radeon/r200: fix bogus clears

There were several problems with these functions (which are a remnant
of dri1 hyperz mostly - should bring it back somehow someday).
First, it would always do a swrast clear if the buffer to clear was a fbo.
Second, for buffers we wouldn't handle the clear (I guess aux/accum?) we
would actually still have tried to clear that later even when we already
cleared it with swrast.

---

 src/mesa/drivers/dri/r200/r200_ioctl.c |   37 ---
 src/mesa/drivers/dri/radeon/radeon_ioctl.c |   37 ---
 2 files changed, 22 insertions(+), 52 deletions(-)

diff --git a/src/mesa/drivers/dri/r200/r200_ioctl.c 
b/src/mesa/drivers/dri/r200/r200_ioctl.c
index e548fac..faa9f16 100644
--- a/src/mesa/drivers/dri/r200/r200_ioctl.c
+++ b/src/mesa/drivers/dri/r200/r200_ioctl.c
@@ -57,8 +57,10 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
SOFTWARE.
 static void r200Clear( struct gl_context *ctx, GLbitfield mask )
 {
r200ContextPtr rmesa = R200_CONTEXT(ctx);
-   GLuint flags = 0;
-   GLuint orig_mask = mask;
+   GLuint hwmask, swmask;
+   GLuint hwbits = BUFFER_BIT_FRONT_LEFT | BUFFER_BIT_BACK_LEFT |
+   BUFFER_BIT_DEPTH | BUFFER_BIT_STENCIL |
+   BUFFER_BIT_COLOR0;
 
if ( R200_DEBUG  RADEON_IOCTL ) {
   if (rmesa-radeon.sarea)
@@ -69,36 +71,19 @@ static void r200Clear( struct gl_context *ctx, GLbitfield 
mask )
 
radeonFlush( ctx );
 
-   if ( mask  BUFFER_BIT_FRONT_LEFT ) {
-  flags |= RADEON_FRONT;
-  mask = ~BUFFER_BIT_FRONT_LEFT;
-   }
-
-   if ( mask  BUFFER_BIT_BACK_LEFT ) {
-  flags |= RADEON_BACK;
-  mask = ~BUFFER_BIT_BACK_LEFT;
-   }
-
-   if ( mask  BUFFER_BIT_DEPTH ) {
-  flags |= RADEON_DEPTH;
-  mask = ~BUFFER_BIT_DEPTH;
-   }
-
-   if ( (mask  BUFFER_BIT_STENCIL) ) {
-  flags |= RADEON_STENCIL;
-  mask = ~BUFFER_BIT_STENCIL;
-   }
+   hwmask = mask  hwbits;
+   swmask = mask  ~hwbits;
 
-   if ( mask ) {
+   if ( swmask ) {
   if (R200_DEBUG  RADEON_FALLBACKS)
-fprintf(stderr, %s: swrast clear, mask: %x\n, __FUNCTION__, mask);
-  _swrast_Clear( ctx, mask );
+fprintf(stderr, %s: swrast clear, mask: %x\n, __FUNCTION__, swmask);
+  _swrast_Clear( ctx, swmask );
}
 
-   if ( !flags )
+   if ( !hwmask )
   return;
 
-   radeonUserClear(ctx, orig_mask);
+   radeonUserClear(ctx, hwmask);
 }
 
 GLboolean r200IsGartMemory( r200ContextPtr rmesa, const GLvoid *pointer,
diff --git a/src/mesa/drivers/dri/radeon/radeon_ioctl.c 
b/src/mesa/drivers/dri/radeon/radeon_ioctl.c
index 22118a7..c6c8b05 100644
--- a/src/mesa/drivers/dri/radeon/radeon_ioctl.c
+++ b/src/mesa/drivers/dri/radeon/radeon_ioctl.c
@@ -381,8 +381,10 @@ void radeonEmitAOS( r100ContextPtr rmesa,
 static void radeonClear( struct gl_context *ctx, GLbitfield mask )
 {
r100ContextPtr rmesa = R100_CONTEXT(ctx);
-   GLuint flags = 0;
-   GLuint orig_mask = mask;
+   GLuint hwmask, swmask;
+   GLuint hwbits = BUFFER_BIT_FRONT_LEFT | BUFFER_BIT_BACK_LEFT |
+   BUFFER_BIT_DEPTH | BUFFER_BIT_STENCIL |
+   BUFFER_BIT_COLOR0;
 
if (mask  (BUFFER_BIT_FRONT_LEFT | BUFFER_BIT_FRONT_RIGHT)) {
   rmesa-radeon.front_buffer_dirty = GL_TRUE;
@@ -394,36 +396,19 @@ static void radeonClear( struct gl_context *ctx, 
GLbitfield mask )
 
radeon_firevertices(rmesa-radeon);
 
-   if ( mask  BUFFER_BIT_FRONT_LEFT ) {
-  flags |= RADEON_FRONT;
-  mask = ~BUFFER_BIT_FRONT_LEFT;
-   }
-
-   if ( mask  BUFFER_BIT_BACK_LEFT ) {
-  flags |= RADEON_BACK;
-  mask = ~BUFFER_BIT_BACK_LEFT;
-   }
-
-   if ( mask  BUFFER_BIT_DEPTH ) {
-  flags |= RADEON_DEPTH;
-  mask = ~BUFFER_BIT_DEPTH;
-   }
-
-   if ( (mask  BUFFER_BIT_STENCIL) ) {
-  flags |= RADEON_STENCIL;
-  mask = ~BUFFER_BIT_STENCIL;
-   }
+   hwmask = mask  hwbits;
+   swmask = mask  ~hwbits;
 
-   if ( mask ) {
+   if ( swmask ) {
   if (RADEON_DEBUG  RADEON_FALLBACKS)
-fprintf(stderr, %s: swrast clear, mask: %x\n, __FUNCTION__, mask);
-  _swrast_Clear( ctx, mask );
+fprintf(stderr, %s: swrast clear, mask: %x\n, __FUNCTION__, swmask);
+  _swrast_Clear( ctx, swmask );
}
 
-   if ( !flags )
+   if ( !hwmask )
   return;
 
-   radeonUserClear(ctx, orig_mask);
+   radeonUserClear(ctx, hwmask);
 }
 
 void radeonInitIoctlFuncs( struct gl_context *ctx )

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


Mesa (master): radeon/r200: get rid of some unneeded cliprect/scissor code

2012-08-01 Thread Roland Scheidegger
Module: Mesa
Branch: master
Commit: c0c216c4690f1d39ae384b45be5d5350d5bde875
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c0c216c4690f1d39ae384b45be5d5350d5bde875

Author: Roland Scheidegger srol...@vmware.com
Date:   Fri Jul 27 03:49:25 2012 +0200

radeon/r200: get rid of some unneeded cliprect/scissor code

Noone was interested in the number of cliprects, and noone cared
about the intersect result neither. So just nuke this.

---

 src/mesa/drivers/dri/radeon/radeon_common.c|   56 +--
 src/mesa/drivers/dri/radeon/radeon_common.h|1 -
 .../drivers/dri/radeon/radeon_common_context.c |4 --
 .../drivers/dri/radeon/radeon_common_context.h |4 --
 4 files changed, 3 insertions(+), 62 deletions(-)

diff --git a/src/mesa/drivers/dri/radeon/radeon_common.c 
b/src/mesa/drivers/dri/radeon/radeon_common.c
index a8dfae0..c9f9b20 100644
--- a/src/mesa/drivers/dri/radeon/radeon_common.c
+++ b/src/mesa/drivers/dri/radeon/radeon_common.c
@@ -67,57 +67,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
SOFTWARE.
  * Scissoring
  */
 
-static GLboolean intersect_rect(drm_clip_rect_t * out,
-   drm_clip_rect_t * a, drm_clip_rect_t * b)
-{
-   *out = *a;
-   if (b-x1  out-x1)
-   out-x1 = b-x1;
-   if (b-y1  out-y1)
-   out-y1 = b-y1;
-   if (b-x2  out-x2)
-   out-x2 = b-x2;
-   if (b-y2  out-y2)
-   out-y2 = b-y2;
-   if (out-x1 = out-x2)
-   return GL_FALSE;
-   if (out-y1 = out-y2)
-   return GL_FALSE;
-   return GL_TRUE;
-}
-
-void radeonRecalcScissorRects(radeonContextPtr radeon)
-{
-   struct gl_context *ctx = radeon-glCtx;
-   drm_clip_rect_t bounds;
-
-   bounds.x1 = 0;
-   bounds.y1 = 0;
-   bounds.x2 = ctx-DrawBuffer-Width;
-   bounds.y2 = ctx-DrawBuffer-Height;
-
-   if (!radeon-state.scissor.numAllocedClipRects) {
-   radeon-state.scissor.numAllocedClipRects = 1;
-   radeon-state.scissor.pClipRects =
-   MALLOC(sizeof(drm_clip_rect_t));
-
-   if (radeon-state.scissor.pClipRects == NULL) {
-   radeon-state.scissor.numAllocedClipRects = 0;
-   return;
-   }
-   }
-
-   radeon-state.scissor.numClipRects = 0;
-   if (intersect_rect(radeon-state.scissor.pClipRects,
-  bounds,
-  radeon-state.scissor.rect)) {
-   radeon-state.scissor.numClipRects = 1;
-   }
-
-   if (radeon-vtbl.update_scissor)
-  radeon-vtbl.update_scissor(radeon-glCtx);
-}
-
 /**
  * Update cliprects and scissors.
  */
@@ -149,7 +98,7 @@ void radeonSetCliprects(radeonContextPtr radeon)
}
 
if (radeon-state.scissor.enabled)
-   radeonRecalcScissorRects(radeon);
+   radeonUpdateScissor(radeon-glCtx);
 
 }
 
@@ -187,7 +136,8 @@ void radeonUpdateScissor( struct gl_context *ctx )
rmesa-state.scissor.rect.x2 = CLAMP(x2,  min_x, max_x);
rmesa-state.scissor.rect.y2 = CLAMP(y2,  min_y, max_y);
 
-   radeonRecalcScissorRects( rmesa );
+   if (rmesa-vtbl.update_scissor)
+  rmesa-vtbl.update_scissor(ctx);
 }
 
 /* =
diff --git a/src/mesa/drivers/dri/radeon/radeon_common.h 
b/src/mesa/drivers/dri/radeon/radeon_common.h
index 6f9b5b9..636822f 100644
--- a/src/mesa/drivers/dri/radeon/radeon_common.h
+++ b/src/mesa/drivers/dri/radeon/radeon_common.h
@@ -6,7 +6,6 @@
 #include radeon_texture.h
 
 void radeonUserClear(struct gl_context *ctx, GLuint mask);
-void radeonRecalcScissorRects(radeonContextPtr radeon);
 void radeonSetCliprects(radeonContextPtr radeon);
 void radeonUpdateScissor( struct gl_context *ctx );
 void radeonScissor(struct gl_context* ctx, GLint x, GLint y, GLsizei w, 
GLsizei h);
diff --git a/src/mesa/drivers/dri/radeon/radeon_common_context.c 
b/src/mesa/drivers/dri/radeon/radeon_common_context.c
index b5fe7cd..8ea8925 100644
--- a/src/mesa/drivers/dri/radeon/radeon_common_context.c
+++ b/src/mesa/drivers/dri/radeon/radeon_common_context.c
@@ -260,10 +260,6 @@ void radeonDestroyContext(__DRIcontext *driContextPriv )
 
radeon_destroy_atom_list(radeon);
 
-   if (radeon-state.scissor.pClipRects) {
-   FREE(radeon-state.scissor.pClipRects);
-   radeon-state.scissor.pClipRects = 0;
-   }
 #ifdef RADEON_BO_TRACK
track = fopen(/tmp/tracklog, w);
if (track) {
diff --git a/src/mesa/drivers/dri/radeon/radeon_common_context.h 
b/src/mesa/drivers/dri/radeon/radeon_common_context.h
index 11275f8..5c23892 100644
--- a/src/mesa/drivers/dri/radeon/radeon_common_context.h
+++ b/src/mesa/drivers/dri/radeon/radeon_common_context.h
@@ -122,10 +122,6 @@ struct radeon_depthbuffer_state {
 struct radeon_scissor_state {
drm_clip_rect_t rect;
GLboolean 

Mesa (master): r200: get rid of dubious aux scissor bits

2012-08-01 Thread Roland Scheidegger
Module: Mesa
Branch: master
Commit: be2dcc5e9f61d380aec93eeb01227cbb6b5037c1
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=be2dcc5e9f61d380aec93eeb01227cbb6b5037c1

Author: Roland Scheidegger srol...@vmware.com
Date:   Fri Jul 27 03:58:45 2012 +0200

r200: get rid of dubious aux scissor bits

no point in emitting aux scissor values if we
a) never enable them
b) never set the actual values

plus it is enough to have that aux scissor enable reg (which we never set to
enable) in one place not two.

---

 src/mesa/drivers/dri/r200/r200_context.h|   35 +++---
 src/mesa/drivers/dri/r200/r200_state_init.c |4 ---
 2 files changed, 15 insertions(+), 24 deletions(-)

diff --git a/src/mesa/drivers/dri/r200/r200_context.h 
b/src/mesa/drivers/dri/r200/r200_context.h
index e0d5693..778934d 100644
--- a/src/mesa/drivers/dri/r200/r200_context.h
+++ b/src/mesa/drivers/dri/r200/r200_context.h
@@ -442,19 +442,16 @@ struct r200_texture_state {
 #define CST_RB3D_DEPTHXY_OFFSET   3
 #define CST_CMD_2 4
 #define CST_RE_AUX_SCISSOR_CNTL   5
-#define CST_CMD_3 6
-#define CST_RE_SCISSOR_TL_0   7
-#define CST_RE_SCISSOR_BR_0   8
-#define CST_CMD_4 9
-#define CST_SE_VAP_CNTL_STATUS10
-#define CST_CMD_5 11
-#define CST_RE_POINTSIZE  12
-#define CST_CMD_6 13
-#define CST_SE_TCL_INPUT_VTX_014
-#define CST_SE_TCL_INPUT_VTX_115
-#define CST_SE_TCL_INPUT_VTX_216
-#define CST_SE_TCL_INPUT_VTX_317
-#define CST_STATE_SIZE18
+#define CST_CMD_4 6
+#define CST_SE_VAP_CNTL_STATUS7
+#define CST_CMD_5 8
+#define CST_RE_POINTSIZE  9
+#define CST_CMD_6 10
+#define CST_SE_TCL_INPUT_VTX_011
+#define CST_SE_TCL_INPUT_VTX_112
+#define CST_SE_TCL_INPUT_VTX_213
+#define CST_SE_TCL_INPUT_VTX_314
+#define CST_STATE_SIZE15
 
 #define PRF_CMD_0 0
 #define PRF_PP_TRI_PERF   1
@@ -462,13 +459,11 @@ struct r200_texture_state {
 #define PRF_STATE_SIZE3
 
 
-#define SCI_CMD_0 0
-#define SCI_RE_AUX1
-#define SCI_CMD_1 2
-#define SCI_XY_1  3
-#define SCI_CMD_2 4
-#define SCI_XY_2  5
-#define SCI_STATE_SIZE6
+#define SCI_CMD_1 0
+#define SCI_XY_1  1
+#define SCI_CMD_2 2
+#define SCI_XY_2  3
+#define SCI_STATE_SIZE4
 
 #define R200_QUERYOBJ_CMD_0  0
 #define R200_QUERYOBJ_DATA_0 1
diff --git a/src/mesa/drivers/dri/r200/r200_state_init.c 
b/src/mesa/drivers/dri/r200/r200_state_init.c
index 2fe3f94..a19e858 100644
--- a/src/mesa/drivers/dri/r200/r200_state_init.c
+++ b/src/mesa/drivers/dri/r200/r200_state_init.c
@@ -762,7 +762,6 @@ void r200InitState( r200ContextPtr rmesa )
rmesa-hw.cst.cmd[CST_CMD_0] = cmdpkt(rmesa, R200_EMIT_PP_CNTL_X);
rmesa-hw.cst.cmd[CST_CMD_1] = cmdpkt(rmesa, R200_EMIT_RB3D_DEPTHXY_OFFSET);
rmesa-hw.cst.cmd[CST_CMD_2] = cmdpkt(rmesa, R200_EMIT_RE_AUX_SCISSOR_CNTL);
-   rmesa-hw.cst.cmd[CST_CMD_3] = cmdpkt(rmesa, R200_EMIT_RE_SCISSOR_TL_0);
rmesa-hw.cst.cmd[CST_CMD_4] = cmdpkt(rmesa, R200_EMIT_SE_VAP_CNTL_STATUS);
rmesa-hw.cst.cmd[CST_CMD_5] = cmdpkt(rmesa, R200_EMIT_RE_POINTSIZE);
rmesa-hw.cst.cmd[CST_CMD_6] = cmdpkt(rmesa, 
R200_EMIT_TCL_INPUT_VTX_VECTOR_ADDR_0);
@@ -815,7 +814,6 @@ void r200InitState( r200ContextPtr rmesa )
rmesa-hw.prf.cmd[PRF_CMD_0] = cmdpkt(rmesa, R200_EMIT_PP_TRI_PERF_CNTL);
rmesa-hw.spr.cmd[SPR_CMD_0] = cmdpkt(rmesa, 
R200_EMIT_TCL_POINT_SPRITE_CNTL);
 
-   rmesa-hw.sci.cmd[SCI_CMD_0] = CP_PACKET0(R200_RE_AUX_SCISSOR_CNTL, 0);
rmesa-hw.sci.cmd[SCI_CMD_1] = CP_PACKET0(R200_RE_TOP_LEFT, 0);
rmesa-hw.sci.cmd[SCI_CMD_2] = CP_PACKET0(R200_RE_WIDTH_HEIGHT, 0);
 
@@ -1026,8 +1024,6 @@ void r200InitState( r200ContextPtr rmesa )
rmesa-hw.cst.cmd[CST_PP_CNTL_X] = 0;
rmesa-hw.cst.cmd[CST_RB3D_DEPTHXY_OFFSET] = 0;
rmesa-hw.cst.cmd[CST_RE_AUX_SCISSOR_CNTL] = 0x0;
-   rmesa-hw.cst.cmd[CST_RE_SCISSOR_TL_0] = 0;
-   rmesa-hw.cst.cmd[CST_RE_SCISSOR_BR_0] = 0;
rmesa-hw.cst.cmd[CST_SE_VAP_CNTL_STATUS] =
 #ifdef MESA_BIG_ENDIAN
R200_VC_32BIT_SWAP;

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


Mesa (master): linux: Default to dri not xlib on all arches

2012-08-01 Thread Adam Jackson
Module: Mesa
Branch: master
Commit: 33ef67ab20de9b04f7d3d32f01cb87c29034db88
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=33ef67ab20de9b04f7d3d32f01cb87c29034db88

Author: Adam Jackson a...@redhat.com
Date:   Wed Aug  1 11:44:28 2012 -0400

linux: Default to dri not xlib on all arches

Even on s390{,x} where there's no video card, you still want this so GLX
protocol works.

Reviewed-by: Matt Turner matts...@gmail.com
Signed-off-by: Adam Jackson a...@redhat.com

---

 configure.ac |4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)

diff --git a/configure.ac b/configure.ac
index b01b192..258c8ba 100644
--- a/configure.ac
+++ b/configure.ac
@@ -723,9 +723,7 @@ default_driver=xlib
 
 case $host_os in
 linux*)
-case $host_cpu in
-i*86|x86_64|powerpc*|sparc*|ia64*) default_driver=dri;;
-esac
+default_driver=dri;;
 ;;
 *freebsd* | dragonfly* | *netbsd*)
 case $host_cpu in

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


Mesa (master): configure.ac: remove remnants of ppc asm support

2012-08-01 Thread Matt Turner
Module: Mesa
Branch: master
Commit: 0e38a3ca52d8372307a10f8a1aa2ef4a24f0dc79
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=0e38a3ca52d8372307a10f8a1aa2ef4a24f0dc79

Author: Matt Turner matts...@gmail.com
Date:   Wed Aug  1 08:27:37 2012 -0700

configure.ac: remove remnants of ppc asm support

Missed by d387899388bd7090bda50593e35f8ed3cb730c47.

Reviewed-by: Adam Jackson a...@redhat.com

---

 configure.ac |7 ---
 1 files changed, 0 insertions(+), 7 deletions(-)

diff --git a/configure.ac b/configure.ac
index 258c8ba..60eaaf2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -470,13 +470,6 @@ if test x$enable_asm = xyes; then
 ;;
 esac
 ;;
-powerpc)
-case $host_os in
-linux*)
-asm_arch=ppc
-;;
-esac
-;;
 sparc*)
 case $host_os in
 linux*)

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


Mesa (master): configure.ac: Remove contractions to stop breaking syntax highlighting

2012-08-01 Thread Matt Turner
Module: Mesa
Branch: master
Commit: 14819eb58831ce197afe8abe8837057e02475d94
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=14819eb58831ce197afe8abe8837057e02475d94

Author: Matt Turner matts...@gmail.com
Date:   Wed Aug  1 08:32:49 2012 -0700

configure.ac: Remove contractions to stop breaking syntax highlighting

Reviewed-by: Adam Jackson a...@redhat.com

---

 configure.ac |8 
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/configure.ac b/configure.ac
index 60eaaf2..87fb859 100644
--- a/configure.ac
+++ b/configure.ac
@@ -284,11 +284,11 @@ dnl explicitly requested. If both disabled, set to static 
since shared
 dnl was explicitly requested.
 case x$enable_static$enable_shared in
 xyesyes )
-AC_MSG_WARN([Can't build static and shared libraries, disabling shared])
+AC_MSG_WARN([Cannot build static and shared libraries, disabling shared])
 enable_shared=no
 ;;
 xnono )
-AC_MSG_WARN([Can't disable both static and shared libraries, enabling 
static])
+AC_MSG_WARN([Cannot disable both static and shared libraries, enabling 
static])
 enable_static=yes
 ;;
 esac
@@ -873,7 +873,7 @@ PKG_CHECK_MODULES([LIBDRM], [libdrm = $LIBDRM_REQUIRED],
 if test x$enable_dri = xyes; then
 # DRI must be shared, I think
 if test $enable_static = yes; then
-AC_MSG_ERROR([Can't use static libraries for DRI drivers])
+AC_MSG_ERROR([Cannot use static libraries for DRI drivers])
 fi
 
 # not a hard requirement as swrast does not depend on it
@@ -1126,7 +1126,7 @@ yes)
 dri_drivers=`IFS=', '; echo $with_dri_drivers`
 for driver in $dri_drivers; do
 test -d $srcdir/src/mesa/drivers/dri/$driver || \
-AC_MSG_ERROR([DRI driver directory '$driver' doesn't exist])
+AC_MSG_ERROR([DRI driver directory '$driver' does not exist])
 done
 DRI_DIRS=$dri_drivers
 if test -n $DRI_DIRS -a x$enable_opengl != xyes; then

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


Mesa (master): configure.ac: Don't duplicate CFLAGS

2012-08-01 Thread Matt Turner
Module: Mesa
Branch: master
Commit: 33ae29c93b8f70a86dcedc495dd658a5d5679db3
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=33ae29c93b8f70a86dcedc495dd658a5d5679db3

Author: Matt Turner matts...@gmail.com
Date:   Wed Aug  1 08:38:35 2012 -0700

configure.ac: Don't duplicate CFLAGS

These assignments caused CFLAGS specified on the configure line to
appear twice in the final CFLAGS. Removing them makes the behavior
reasonable -- USER_CFLAGS are appended at the end of CFLAGS, allowing
the builder to override flags added by configure.ac like
-fno-strict-aliasing.

Reviewed-by: Adam Jackson a...@redhat.com

---

 configure.ac |4 
 1 files changed, 0 insertions(+), 4 deletions(-)

diff --git a/configure.ac b/configure.ac
index 87fb859..2b5abb4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -26,10 +26,6 @@ m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
 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
-
 dnl Versions for external dependencies
 LIBDRM_REQUIRED=2.4.24
 LIBDRM_RADEON_REQUIRED=2.4.31

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


Mesa (master): configure.ac: Remove extra ;;

2012-08-01 Thread Matt Turner
Module: Mesa
Branch: master
Commit: 84ead7b4e861c14ee24b96f8892230744640f0df
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=84ead7b4e861c14ee24b96f8892230744640f0df

Author: Matt Turner matts...@gmail.com
Date:   Wed Aug  1 10:11:46 2012 -0700

configure.ac: Remove extra ;;

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

---

 configure.ac |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/configure.ac b/configure.ac
index 2b5abb4..f7fbf99 100644
--- a/configure.ac
+++ b/configure.ac
@@ -712,7 +712,7 @@ default_driver=xlib
 
 case $host_os in
 linux*)
-default_driver=dri;;
+default_driver=dri
 ;;
 *freebsd* | dragonfly* | *netbsd*)
 case $host_cpu in

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


Mesa (master): intel: Remove dead code in intelAllocateBuffer

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

Author: Chad Versace chad.vers...@linux.intel.com
Date:   Mon Jul  9 15:51:06 2012 -0700

intel: Remove dead code in intelAllocateBuffer

After commit intel: Convert to using private depth/stencil buffers, we
request from DRI2GetBuffersWithFormat only the front left and back left
buffers. We no longer request depth and stencil buffers.

Assert that in intelAllocateBuffer and remove the related dead code.

Reviewed-by: Paul Berry stereotype...@gmail.com
Signed-off-by: Chad Versace chad.vers...@linux.intel.com

---

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

diff --git a/src/mesa/drivers/dri/intel/intel_screen.c 
b/src/mesa/drivers/dri/intel/intel_screen.c
index e8a4ad1..41d4726 100644
--- a/src/mesa/drivers/dri/intel/intel_screen.c
+++ b/src/mesa/drivers/dri/intel/intel_screen.c
@@ -972,54 +972,6 @@ struct intel_buffer {
struct intel_region *region;
 };
 
-/**
- * \brief Get tiling format for a DRI buffer.
- *
- * \param attachment is the buffer's attachmet point, such as
- *__DRI_BUFFER_DEPTH.
- * \param out_tiling is the returned tiling format for buffer.
- * \return false if attachment is unrecognized or is incompatible with screen.
- */
-static bool
-intel_get_dri_buffer_tiling(struct intel_screen *screen,
-uint32_t attachment,
-uint32_t *out_tiling)
-{
-   if (screen-gen  4) {
-  *out_tiling = I915_TILING_X;
-  return true;
-   }
-
-   switch (attachment) {
-   case __DRI_BUFFER_DEPTH:
-   case __DRI_BUFFER_DEPTH_STENCIL:
-   case __DRI_BUFFER_HIZ:
-  *out_tiling = I915_TILING_Y;
-  return true;
-   case __DRI_BUFFER_ACCUM:
-   case __DRI_BUFFER_FRONT_LEFT:
-   case __DRI_BUFFER_FRONT_RIGHT:
-   case __DRI_BUFFER_BACK_LEFT:
-   case __DRI_BUFFER_BACK_RIGHT:
-   case __DRI_BUFFER_FAKE_FRONT_LEFT:
-   case __DRI_BUFFER_FAKE_FRONT_RIGHT:
-  *out_tiling = I915_TILING_X;
-  return true;
-   case __DRI_BUFFER_STENCIL:
-  /* The stencil buffer is W tiled. However, we request from the kernel
-   * a non-tiled buffer because the GTT is incapable of W fencing.
-   */
-  *out_tiling = I915_TILING_NONE;
-  return true;
-   default:
-  if(unlikely(INTEL_DEBUG  DEBUG_DRI)) {
-fprintf(stderr, error: %s: unrecognized DRI buffer attachment 0x%x\n,
-__FUNCTION__, attachment);
-  }
-   return false;
-   }
-}
-
 static __DRIbuffer *
 intelAllocateBuffer(__DRIscreen *screen,
unsigned attachment, unsigned format,
@@ -1028,49 +980,19 @@ intelAllocateBuffer(__DRIscreen *screen,
struct intel_buffer *intelBuffer;
struct intel_screen *intelScreen = screen-driverPrivate;
 
-   uint32_t tiling;
-   uint32_t region_width;
-   uint32_t region_height;
-   uint32_t region_cpp;
-
-   bool ok = true;
-
-   ok = intel_get_dri_buffer_tiling(intelScreen, attachment, tiling);
-   if (!ok)
-  return NULL;
+   assert(attachment == __DRI_BUFFER_FRONT_LEFT ||
+  attachment == __DRI_BUFFER_BACK_LEFT);
 
intelBuffer = CALLOC(sizeof *intelBuffer);
if (intelBuffer == NULL)
   return NULL;
 
-   if (attachment == __DRI_BUFFER_STENCIL) {
-  /* Stencil buffers use W tiling, a tiling format that the DRM functions
-   * don't properly account for.  Therefore, when we allocate a stencil
-   * buffer that is private to Mesa (see intel_miptree_create), we round
-   * the height and width up to the next multiple of the tile size (64x64)
-   * and then ask DRM to allocate an untiled buffer.  Consequently, the
-   * height and the width stored in the stencil buffer's region structure
-   * are always multiples of 64, even if the stencil buffer itself is
-   * smaller.
-   *
-   * To avoid inconsistencies between how we represent private buffers and
-   * buffers shared with the window system, round up the height and width
-   * for window system buffers too.
-   */
-  region_width = ALIGN(width, 64);
-  region_height = ALIGN(height, 64);
-   } else {
-  region_width = width;
-  region_height = height;
-   }
-
-   region_cpp = format / 8;
-
+   /* The front and back buffers are color buffers, which are X tiled. */
intelBuffer-region = intel_region_alloc(intelScreen,
-tiling,
-region_cpp,
-region_width,
-region_height,
+I915_TILING_X,
+format / 8,
+width,
+height,
 

Mesa (master): intel: Decrease nesting level in intelCreateBuffer

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

Author: Chad Versace chad.vers...@linux.intel.com
Date:   Mon Jul  9 16:51:23 2012 -0700

intel: Decrease nesting level in intelCreateBuffer

Nearly the whole function body was contained in the 'else' branch. The
'if' branch did one thing: return early with an error. Clean things up by
moving all the code out of the 'else' branch. Decreases max nesting level
from 4 to 3.

Reviewed-by: Paul Berry stereotype...@gmail.com
Signed-off-by: Chad Versace chad.vers...@linux.intel.com

---

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

diff --git a/src/mesa/drivers/dri/intel/intel_screen.c 
b/src/mesa/drivers/dri/intel/intel_screen.c
index 41d4726..31497bc 100644
--- a/src/mesa/drivers/dri/intel/intel_screen.c
+++ b/src/mesa/drivers/dri/intel/intel_screen.c
@@ -549,83 +549,80 @@ intelCreateBuffer(__DRIscreen * driScrnPriv,
 {
struct intel_renderbuffer *rb;
struct intel_screen *screen = (struct intel_screen*) 
driScrnPriv-driverPrivate;
+   gl_format rgbFormat;
+   struct gl_framebuffer *fb;
 
-   if (isPixmap) {
-  return false;  /* not implemented */
-   }
-   else {
-  gl_format rgbFormat;
+   if (isPixmap)
+  return false;
 
-  struct gl_framebuffer *fb = CALLOC_STRUCT(gl_framebuffer);
+   fb = CALLOC_STRUCT(gl_framebuffer);
+   if (!fb)
+  return false;
 
-  if (!fb)
-return false;
+   _mesa_initialize_window_framebuffer(fb, mesaVis);
 
-  _mesa_initialize_window_framebuffer(fb, mesaVis);
+   if (mesaVis-redBits == 5)
+  rgbFormat = MESA_FORMAT_RGB565;
+   else if (mesaVis-alphaBits == 0)
+  rgbFormat = MESA_FORMAT_XRGB;
+   else
+  rgbFormat = MESA_FORMAT_ARGB;
 
-  if (mesaVis-redBits == 5)
-rgbFormat = MESA_FORMAT_RGB565;
-  else if (mesaVis-alphaBits == 0)
-rgbFormat = MESA_FORMAT_XRGB;
-  else
-rgbFormat = MESA_FORMAT_ARGB;
+   /* setup the hardware-based renderbuffers */
+   rb = intel_create_renderbuffer(rgbFormat);
+   _mesa_add_renderbuffer(fb, BUFFER_FRONT_LEFT, rb-Base.Base);
 
-  /* setup the hardware-based renderbuffers */
+   if (mesaVis-doubleBufferMode) {
   rb = intel_create_renderbuffer(rgbFormat);
-  _mesa_add_renderbuffer(fb, BUFFER_FRONT_LEFT, rb-Base.Base);
-
-  if (mesaVis-doubleBufferMode) {
-rb = intel_create_renderbuffer(rgbFormat);
- _mesa_add_renderbuffer(fb, BUFFER_BACK_LEFT, rb-Base.Base);
-  }
+  _mesa_add_renderbuffer(fb, BUFFER_BACK_LEFT, rb-Base.Base);
+   }
 
-  /*
-   * Assert here that the gl_config has an expected depth/stencil bit
-   * combination: one of d24/s8, d16/s0, d0/s0. (See intelInitScreen2(),
-   * which constructs the advertised configs.)
-   */
-  if (mesaVis-depthBits == 24) {
-assert(mesaVis-stencilBits == 8);
-
-if (screen-hw_has_separate_stencil) {
-   rb = intel_create_private_renderbuffer(MESA_FORMAT_X8_Z24);
-   _mesa_add_renderbuffer(fb, BUFFER_DEPTH, rb-Base.Base);
-   rb = intel_create_private_renderbuffer(MESA_FORMAT_S8);
-   _mesa_add_renderbuffer(fb, BUFFER_STENCIL, rb-Base.Base);
-} else {
-   /*
-* Use combined depth/stencil. Note that the renderbuffer is
-* attached to two attachment points.
-*/
-rb = intel_create_private_renderbuffer(MESA_FORMAT_S8_Z24);
-   _mesa_add_renderbuffer(fb, BUFFER_DEPTH, rb-Base.Base);
-   _mesa_add_renderbuffer(fb, BUFFER_STENCIL, rb-Base.Base);
-}
-  }
-  else if (mesaVis-depthBits == 16) {
-assert(mesaVis-stencilBits == 0);
- /* just 16-bit depth buffer, no hw stencil */
- struct intel_renderbuffer *depthRb
-   = intel_create_private_renderbuffer(MESA_FORMAT_Z16);
- _mesa_add_renderbuffer(fb, BUFFER_DEPTH, depthRb-Base.Base);
-  }
-  else {
-assert(mesaVis-depthBits == 0);
-assert(mesaVis-stencilBits == 0);
+   /*
+* Assert here that the gl_config has an expected depth/stencil bit
+* combination: one of d24/s8, d16/s0, d0/s0. (See intelInitScreen2(),
+* which constructs the advertised configs.)
+*/
+   if (mesaVis-depthBits == 24) {
+  assert(mesaVis-stencilBits == 8);
+
+  if (screen-hw_has_separate_stencil) {
+ rb = intel_create_private_renderbuffer(MESA_FORMAT_X8_Z24);
+ _mesa_add_renderbuffer(fb, BUFFER_DEPTH, rb-Base.Base);
+ rb = intel_create_private_renderbuffer(MESA_FORMAT_S8);
+ _mesa_add_renderbuffer(fb, BUFFER_STENCIL, rb-Base.Base);
+  } else {
+ /*
+  * Use combined depth/stencil. Note that the renderbuffer is
+  * attached to two attachment points.
+  */
+ rb = 

Mesa (master): intel: Use consistent pattern in intelCreateBuffer

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

Author: Chad Versace chad.vers...@linux.intel.com
Date:   Mon Jul  9 17:01:29 2012 -0700

intel: Use consistent pattern in intelCreateBuffer

The 16-bit depth case did not follow the function's prevalent pattern.

Reviewed-by: Paul Berry stereotype...@gmail.com
Signed-off-by: Chad Versace chad.vers...@linux.intel.com

---

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

diff --git a/src/mesa/drivers/dri/intel/intel_screen.c 
b/src/mesa/drivers/dri/intel/intel_screen.c
index 31497bc..90f1778 100644
--- a/src/mesa/drivers/dri/intel/intel_screen.c
+++ b/src/mesa/drivers/dri/intel/intel_screen.c
@@ -602,10 +602,8 @@ intelCreateBuffer(__DRIscreen * driScrnPriv,
}
else if (mesaVis-depthBits == 16) {
   assert(mesaVis-stencilBits == 0);
-  /* just 16-bit depth buffer, no hw stencil */
-  struct intel_renderbuffer *depthRb
- = intel_create_private_renderbuffer(MESA_FORMAT_Z16);
-  _mesa_add_renderbuffer(fb, BUFFER_DEPTH, depthRb-Base.Base);
+  rb = intel_create_private_renderbuffer(MESA_FORMAT_Z16);
+  _mesa_add_renderbuffer(fb, BUFFER_DEPTH, rb-Base.Base);
}
else {
   assert(mesaVis-depthBits == 0);

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


Mesa (master): glsl: Add support for OES_standard_derivatives in GLSL ES.

2012-08-01 Thread Kenneth Graunke
Module: Mesa
Branch: master
Commit: d5c918f6adb2f7f72a759607c8f76e7616656c13
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d5c918f6adb2f7f72a759607c8f76e7616656c13

Author: Tomeu Vizoso to...@tomeuvizoso.net
Date:   Mon Jul 16 20:45:17 2012 +0200

glsl: Add support for OES_standard_derivatives in GLSL ES.

Previously, we advertised the extension but the builtin functions
were enabled only for GLSL and not for ES.

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

Signed-off-by: Tomeu Vizoso tomeu.viz...@collabora.com
Reviewed-by: Ian Romanick ian.d.roman...@intel.com
Reviewed-by: Kenneth Graunke kenn...@whitecape.org

---

 .../profiles/OES_standard_derivatives.frag |   20 
 src/glsl/glsl_parser_extras.cpp|1 +
 src/glsl/glsl_parser_extras.h  |2 ++
 3 files changed, 23 insertions(+), 0 deletions(-)

diff --git a/src/glsl/builtins/profiles/OES_standard_derivatives.frag 
b/src/glsl/builtins/profiles/OES_standard_derivatives.frag
new file mode 100644
index 000..2c6ea07
--- /dev/null
+++ b/src/glsl/builtins/profiles/OES_standard_derivatives.frag
@@ -0,0 +1,20 @@
+#version 100
+#extension GL_OES_standard_derivatives : enable
+
+/*
+ * 8.8 - Fragment Processing Functions
+ */
+float dFdx(float p);
+vec2  dFdx(vec2  p);
+vec3  dFdx(vec3  p);
+vec4  dFdx(vec4  p);
+
+float dFdy(float p);
+vec2  dFdy(vec2  p);
+vec3  dFdy(vec3  p);
+vec4  dFdy(vec4  p);
+
+float fwidth(float p);
+vec2  fwidth(vec2  p);
+vec3  fwidth(vec3  p);
+vec4  fwidth(vec4  p);
diff --git a/src/glsl/glsl_parser_extras.cpp b/src/glsl/glsl_parser_extras.cpp
index 09e1e59..872fcda 100644
--- a/src/glsl/glsl_parser_extras.cpp
+++ b/src/glsl/glsl_parser_extras.cpp
@@ -288,6 +288,7 @@ static const _mesa_glsl_extension 
_mesa_glsl_supported_extensions[] = {
EXT(OES_EGL_image_external, true,  false, true,  false, true,  
OES_EGL_image_external),
EXT(ARB_shader_bit_encoding,true,  true,  true,  true,  false, 
ARB_shader_bit_encoding),
EXT(ARB_uniform_buffer_object,  true,  false, true,  true,  false, 
ARB_uniform_buffer_object),
+   EXT(OES_standard_derivatives,   false, false, true,  false,  true, 
OES_standard_derivatives),
 };
 
 #undef EXT
diff --git a/src/glsl/glsl_parser_extras.h b/src/glsl/glsl_parser_extras.h
index c0a96c7..66463c5 100644
--- a/src/glsl/glsl_parser_extras.h
+++ b/src/glsl/glsl_parser_extras.h
@@ -203,6 +203,8 @@ struct _mesa_glsl_parse_state {
bool ARB_shader_bit_encoding_warn;
bool ARB_uniform_buffer_object_enable;
bool ARB_uniform_buffer_object_warn;
+   bool OES_standard_derivatives_enable;
+   bool OES_standard_derivatives_warn;
/*@}*/
 
/** Extensions supported by the OpenGL implementation. */

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


Mesa (master): i965/msaa: Treat GL_SAMPLES=1 as equivalent to GL_SAMPLES=0.

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

Author: Paul Berry stereotype...@gmail.com
Date:   Thu Jul 26 18:01:28 2012 -0700

i965/msaa: Treat GL_SAMPLES=1 as equivalent to GL_SAMPLES=0.

EXT_framebuffer_multisample is a required subpart of
ARB_framebuffer_object, which means that we must support it even on
platforms that don't support MSAA.  Fortunately
EXT_framebuffer_multisample allows for this by allowing GL_MAX_SAMPLES
to be set to 1.

This leads to a tricky quirk in the GL spec: since
GlRenderbufferStorageMultisamples() accepts any value for its
samples parameter up to and including GL_MAX_SAMPLES, that means
that on platforms that don't support MSAA, GL_SAMPLES is allowed to be
set to either 0 or 1.  On platforms that do support MSAA, GL_SAMPLES=1
is not used; 0 means no MSAA, and 2 or higher means MSAA.

In other words, GL_SAMPLES needs to be interpreted as follows:
  =0  no MSAA (possible on all platforms)
  =1  no MSAA (only possible on platforms where MSAA unsupported)
  1  MSAA (only possible on platforms where MSAA supported)

This patch modifies all MSAA-related code to choose between
multisampling and single-sampling based on the condition (GL_SAMPLES 
1) instead of (GL_SAMPLES  0) so that GL_SAMPLES=1 will be treated as
no MSAA.

Note that since GL_SAMPLES=1 implies GL_SAMPLE_BUFFERS=1, we can no
longer use GL_SAMPLE_BUFFERS to distinguish between MSAA and non-MSAA
rendering.

Reviewed-by: Jordan Justen jordan.l.jus...@intel.com
Reviewed-by: Ian Romanick ian.d.roman...@intel.com

---

 src/mesa/drivers/dri/i965/brw_blorp_blit.cpp   |   10 +-
 src/mesa/drivers/dri/i965/brw_wm_surface_state.c   |4 ++--
 src/mesa/drivers/dri/i965/gen6_blorp.cpp   |6 +++---
 src/mesa/drivers/dri/i965/gen6_multisample_state.c |3 ++-
 src/mesa/drivers/dri/i965/gen6_sf_state.c  |2 +-
 src/mesa/drivers/dri/i965/gen6_wm_state.c  |2 +-
 src/mesa/drivers/dri/i965/gen7_blorp.cpp   |4 ++--
 src/mesa/drivers/dri/i965/gen7_sf_state.c  |2 +-
 src/mesa/drivers/dri/i965/gen7_wm_state.c  |2 +-
 src/mesa/drivers/dri/i965/gen7_wm_surface_state.c  |4 ++--
 src/mesa/drivers/dri/intel/intel_mipmap_tree.c |6 +++---
 11 files changed, 23 insertions(+), 22 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp 
b/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp
index 296b99f..1206237 100644
--- a/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp
+++ b/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp
@@ -1582,7 +1582,7 @@ inline intel_msaa_layout
 compute_msaa_layout_for_pipeline(struct brw_context *brw, unsigned num_samples,
  intel_msaa_layout true_layout)
 {
-   if (num_samples == 0) {
+   if (num_samples = 1) {
   /* When configuring the GPU for non-MSAA, we can still accommodate IMS
* format buffers, by transforming coordinates appropriately.
*/
@@ -1652,7 +1652,7 @@ brw_blorp_blit_params::brw_blorp_blit_params(struct 
brw_context *brw,
  dst.num_samples = 0;
}
 
-   if (dst.map_stencil_as_y_tiled  dst.num_samples  0) {
+   if (dst.map_stencil_as_y_tiled  dst.num_samples  1) {
   /* If the destination surface is a W-tiled multisampled stencil buffer
* that we're mapping as Y tiled, then we need to arrange for the WM
* program to run once per sample rather than once per pixel, because
@@ -1662,7 +1662,7 @@ brw_blorp_blit_params::brw_blorp_blit_params(struct 
brw_context *brw,
   wm_prog_key.persample_msaa_dispatch = true;
}
 
-   if (src.num_samples  0  dst.num_samples  0) {
+   if (src.num_samples  0  dst.num_samples  1) {
   /* We are blitting from a multisample buffer to a multisample buffer, so
* we must preserve samples within a pixel.  This means we have to
* arrange for the WM program to run once per sample rather than once
@@ -1679,7 +1679,7 @@ brw_blorp_blit_params::brw_blorp_blit_params(struct 
brw_context *brw,
GLenum base_format = _mesa_get_format_base_format(src_mt-format);
if (base_format != GL_DEPTH_COMPONENT  /* TODO: what about depth/stencil? 
*/
base_format != GL_STENCIL_INDEX 
-   src_mt-num_samples  0  dst_mt-num_samples == 0) {
+   src_mt-num_samples  1  dst_mt-num_samples = 1) {
   /* We are downsampling a color buffer, so blend. */
   wm_prog_key.blend = true;
}
@@ -1717,7 +1717,7 @@ brw_blorp_blit_params::brw_blorp_blit_params(struct 
brw_context *brw,
wm_push_consts.x_transform.setup(src_x0, dst_x0, dst_x1, mirror_x);
wm_push_consts.y_transform.setup(src_y0, dst_y0, dst_y1, mirror_y);
 
-   if (dst.num_samples == 0  dst_mt-num_samples  0) {
+   if (dst.num_samples = 1  dst_mt-num_samples  1) {
   /* We must expand the rectangle we send through the rendering pipeline,
* to account for the fact that we 

Mesa (master): i965/msaa: Allow GL_SAMPLES to be set to 1 prior to Gen6.

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

Author: Paul Berry stereotype...@gmail.com
Date:   Thu Jul 26 18:02:20 2012 -0700

i965/msaa: Allow GL_SAMPLES to be set to 1 prior to Gen6.

This patch allows GL_SAMPLES to be set to either 0 or 1 on i965
platforms that don't support MSAA (those prior to Gen6).  Setting
GL_SAMPLES=1 has the same effect as setting it to 0 on these platforms
(because MSAA is unsupported), but is distinguishable via the GL API.

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

Reviewed-by: Jordan Justen jordan.l.jus...@intel.com
Reviewed-by: Ian Romanick ian.d.roman...@intel.com

---

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

diff --git a/src/mesa/drivers/dri/intel/intel_fbo.c 
b/src/mesa/drivers/dri/intel/intel_fbo.c
index a53985b..613287f 100644
--- a/src/mesa/drivers/dri/intel/intel_fbo.c
+++ b/src/mesa/drivers/dri/intel/intel_fbo.c
@@ -202,7 +202,15 @@ quantize_num_samples(struct intel_context *intel, unsigned 
num_samples)
  return 0;
   return 0;
default:
-  /* MSAA unsupported */
+  /* MSAA unsupported.  However, a careful reading of
+   * EXT_framebuffer_multisample reveals that we need to permit
+   * num_samples to be 1 (since num_samples is permitted to be as high as
+   * GL_MAX_SAMPLES, and GL_MAX_SAMPLES must be at least 1).  Since
+   * platforms before Gen6 don't support MSAA, this is safe, because
+   * multisampling won't happen anyhow.
+   */
+  if (num_samples  0)
+ return 1;
   return 0;
}
 }

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


Mesa (master): mesa: Move DepthMode to texture object

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

Author: Pauli Nieminen pauli.niemi...@linux.intel.com
Date:   Tue Jun 12 21:38:46 2012 +0300

mesa: Move DepthMode to texture object

GL_DEPTH_TEXTURE_MODE isn't meant to be part of sampler state based on
compatibility profile specifications.

OpenGL specification 4.1 compatibility 20100725 3.9.2:
... The values accepted in the pname parameter
are TEXTURE_WRAP_S, TEXTURE_WRAP_T, TEXTURE_WRAP_R, TEXTURE_MIN_-
FILTER, TEXTURE_MAG_FILTER, TEXTURE_BORDER_COLOR, TEXTURE_MIN_-
LOD, TEXTURE_MAX_LOD, TEXTURE_LOD_BIAS, TEXTURE_COMPARE_MODE, and
TEXTURE_COMPARE_FUNC. Texture state listed in table 6.25 but not listed here and
in the sampler state in table 6.26 is not part of the sampler state, and 
remains in the
texture object.

The list of states is in Table 6.24 Textures (state per texture
object) instead of 6.25 mentioned in the specification text.

Same can be found from 3.3 compatibility specification.

Signed-off-by: Pauli Nieminen pauli.niemi...@linux.intel.com
Reviewed-by: Brian Paul bri...@vmware.com
Reviewed-by: Eric Anholt e...@anholt.net

---

 src/mesa/drivers/dri/i915/i915_texstate.c |2 +-
 src/mesa/drivers/dri/i965/brw_wm.c|2 +-
 src/mesa/drivers/dri/i965/brw_wm_surface_state.c  |2 +-
 src/mesa/drivers/dri/i965/gen7_wm_surface_state.c |2 +-
 src/mesa/main/attrib.c|2 +-
 src/mesa/main/mtypes.h|5 ++---
 src/mesa/main/samplerobj.c|2 --
 src/mesa/main/texobj.c|4 ++--
 src/mesa/main/texparam.c  |8 
 src/mesa/main/texstate.c  |2 +-
 src/mesa/state_tracker/st_atom_texture.c  |4 ++--
 src/mesa/swrast/s_texfilter.c |4 ++--
 12 files changed, 18 insertions(+), 21 deletions(-)

diff --git a/src/mesa/drivers/dri/i915/i915_texstate.c 
b/src/mesa/drivers/dri/i915/i915_texstate.c
index 9e6d3b1..4bd5e72 100644
--- a/src/mesa/drivers/dri/i915/i915_texstate.c
+++ b/src/mesa/drivers/dri/i915/i915_texstate.c
@@ -168,7 +168,7 @@ i915_update_tex_unit(struct intel_context *intel, GLuint 
unit, GLuint ss3)
i915-state.tex_offset[unit] = intelObj-mt-offset;
 
format = translate_texture_format(firstImage-TexFormat,
-sampler-DepthMode);
+tObj-DepthMode);
pitch = intelObj-mt-region-pitch * intelObj-mt-cpp;
 
state[I915_TEXREG_MS3] =
diff --git a/src/mesa/drivers/dri/i965/brw_wm.c 
b/src/mesa/drivers/dri/i965/brw_wm.c
index 37bc114..5ab0547 100644
--- a/src/mesa/drivers/dri/i965/brw_wm.c
+++ b/src/mesa/drivers/dri/i965/brw_wm.c
@@ -374,7 +374,7 @@ brw_populate_sampler_prog_key_data(struct gl_context *ctx,
 * format overrides because shadow comparison always returns the
 * result of the comparison in all channels anyway.
 */
-   switch (sampler-DepthMode) {
+   switch (t-DepthMode) {
case GL_ALPHA:
   swizzles[0] = SWIZZLE_ZERO;
   swizzles[1] = SWIZZLE_ZERO;
diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c 
b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
index 3664462..66db08f 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
@@ -732,7 +732,7 @@ brw_update_texture_surface( struct gl_context *ctx, GLuint 
unit )
  BRW_SURFACE_CUBEFACE_ENABLES |
  (translate_tex_format(mt-format,
firstImage-InternalFormat,
-   sampler-DepthMode,
+   tObj-DepthMode,
sampler-sRGBDecode) 
   BRW_SURFACE_FORMAT_SHIFT));
 
diff --git a/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c 
b/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c
index 20e76e3..5b016dc 100644
--- a/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c
+++ b/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c
@@ -296,7 +296,7 @@ gen7_update_texture_surface(struct gl_context *ctx, GLuint 
unit)
surf-ss0.surface_type = translate_tex_target(tObj-Target);
surf-ss0.surface_format = translate_tex_format(mt-format,
firstImage-InternalFormat,
-   sampler-DepthMode,
+   tObj-DepthMode,
sampler-sRGBDecode);
if (tObj-Target == GL_TEXTURE_CUBE_MAP) {
   surf-ss0.cube_pos_x = 1;
diff --git a/src/mesa/main/attrib.c b/src/mesa/main/attrib.c
index 318d576..8bc7c34 100644
--- a/src/mesa/main/attrib.c
+++ b/src/mesa/main/attrib.c
@@ 

Mesa (master): mesa/samplerobj: Support EXT_texture_sRGB_decode

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

Author: Pauli Nieminen pauli.niemi...@linux.intel.com
Date:   Tue Jun 12 21:38:47 2012 +0300

mesa/samplerobj: Support EXT_texture_sRGB_decode

sRGBDecode state is part of sampler object state but mesa was missing
handlers to access the state. This patch adds the support for required
state changes and queries.

GL_EXT_texture_sRGB_decode issue 4:
4) Should we add forward-looking support for ARB_sampler_objects?

RESOLVED: YES

If ARB_sampler_objects exists in the implementation, the sampler
objects should also include this parameter per sampler.

Fixes piglit GL_ARB_sampler_objects/GL_EXT_texture_sRGB_decode.

Signed-off-by: Pauli Nieminen pauli.niemi...@linux.intel.com
Reviewed-by: Brian Paul bri...@vmware.com
Reviewed-by: Eric Anholt e...@anholt.net

---

 src/mesa/main/samplerobj.c |   55 
 1 files changed, 55 insertions(+), 0 deletions(-)

diff --git a/src/mesa/main/samplerobj.c b/src/mesa/main/samplerobj.c
index 8c54c9a..5bb90cf 100644
--- a/src/mesa/main/samplerobj.c
+++ b/src/mesa/main/samplerobj.c
@@ -582,6 +582,23 @@ set_sampler_cube_map_seamless(struct gl_context *ctx,
return GL_TRUE;
 }
 
+static GLuint
+set_sampler_srgb_decode(struct gl_context *ctx,
+  struct gl_sampler_object *samp, GLenum param)
+{
+   if (!ctx-Extensions.EXT_texture_sRGB_decode)
+  return INVALID_PNAME;
+
+   if (samp-sRGBDecode == param)
+  return GL_FALSE;
+
+   if (param != GL_DECODE_EXT  param != GL_SKIP_DECODE_EXT)
+  return INVALID_VALUE;
+
+   flush(ctx);
+   samp-sRGBDecode = param;
+   return GL_TRUE;
+}
 
 static void GLAPIENTRY
 _mesa_SamplerParameteri(GLuint sampler, GLenum pname, GLint param)
@@ -634,6 +651,9 @@ _mesa_SamplerParameteri(GLuint sampler, GLenum pname, GLint 
param)
case GL_TEXTURE_CUBE_MAP_SEAMLESS:
   res = set_sampler_cube_map_seamless(ctx, sampObj, param);
   break;
+   case GL_TEXTURE_SRGB_DECODE_EXT:
+  res = set_sampler_srgb_decode(ctx, sampObj, param);
+  break;
case GL_TEXTURE_BORDER_COLOR:
   /* fall-through */
default:
@@ -718,6 +738,9 @@ _mesa_SamplerParameterf(GLuint sampler, GLenum pname, 
GLfloat param)
case GL_TEXTURE_CUBE_MAP_SEAMLESS:
   res = set_sampler_cube_map_seamless(ctx, sampObj, (GLboolean) param);
   break;
+   case GL_TEXTURE_SRGB_DECODE_EXT:
+  res = set_sampler_srgb_decode(ctx, sampObj, (GLenum) param);
+  break;
case GL_TEXTURE_BORDER_COLOR:
   /* fall-through */
default:
@@ -799,6 +822,9 @@ _mesa_SamplerParameteriv(GLuint sampler, GLenum pname, 
const GLint *params)
case GL_TEXTURE_CUBE_MAP_SEAMLESS:
   res = set_sampler_cube_map_seamless(ctx, sampObj, params[0]);
   break;
+   case GL_TEXTURE_SRGB_DECODE_EXT:
+  res = set_sampler_srgb_decode(ctx, sampObj, params[0]);
+  break;
case GL_TEXTURE_BORDER_COLOR:
   {
  GLfloat c[4];
@@ -890,6 +916,9 @@ _mesa_SamplerParameterfv(GLuint sampler, GLenum pname, 
const GLfloat *params)
case GL_TEXTURE_CUBE_MAP_SEAMLESS:
   res = set_sampler_cube_map_seamless(ctx, sampObj, (GLboolean) params[0]);
   break;
+   case GL_TEXTURE_SRGB_DECODE_EXT:
+  res = set_sampler_srgb_decode(ctx, sampObj, (GLenum) params[0]);
+  break;
case GL_TEXTURE_BORDER_COLOR:
   res = set_sampler_border_colorf(ctx, sampObj, params);
   break;
@@ -972,6 +1001,9 @@ _mesa_SamplerParameterIiv(GLuint sampler, GLenum pname, 
const GLint *params)
case GL_TEXTURE_CUBE_MAP_SEAMLESS:
   res = set_sampler_cube_map_seamless(ctx, sampObj, params[0]);
   break;
+   case GL_TEXTURE_SRGB_DECODE_EXT:
+  res = set_sampler_srgb_decode(ctx, sampObj, (GLenum) params[0]);
+  break;
case GL_TEXTURE_BORDER_COLOR:
   res = set_sampler_border_colori(ctx, sampObj, params);
   break;
@@ -1055,6 +1087,9 @@ _mesa_SamplerParameterIuiv(GLuint sampler, GLenum pname, 
const GLuint *params)
case GL_TEXTURE_CUBE_MAP_SEAMLESS:
   res = set_sampler_cube_map_seamless(ctx, sampObj, params[0]);
   break;
+   case GL_TEXTURE_SRGB_DECODE_EXT:
+  res = set_sampler_srgb_decode(ctx, sampObj, (GLenum) params[0]);
+  break;
case GL_TEXTURE_BORDER_COLOR:
   res = set_sampler_border_colorui(ctx, sampObj, params);
   break;
@@ -1149,6 +1184,11 @@ _mesa_GetSamplerParameteriv(GLuint sampler, GLenum 
pname, GLint *params)
  goto invalid_pname;
   *params = sampObj-CubeMapSeamless;
   break;
+   case GL_TEXTURE_SRGB_DECODE_EXT:
+  if (!ctx-Extensions.EXT_texture_sRGB_decode)
+ goto invalid_pname;
+  *params = (GLenum) sampObj-sRGBDecode;
+  break;
default:
   goto invalid_pname;
}
@@ -1222,6 +1262,11 @@ _mesa_GetSamplerParameterfv(GLuint sampler, GLenum 
pname, GLfloat *params)
 

Mesa (master): nouveau: Add support for ARB_sampler_objects

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

Author: Pauli Nieminen pauli.niemi...@linux.intel.com
Date:   Tue Jun 12 21:38:50 2012 +0300

nouveau: Add support for ARB_sampler_objects

ARB_sampler_objects is very simple software only extension to support.  I want
to make it a mandatory extension for Mesa drivers to allow the meta module to
use it.

This patch add support for the extension to nouveau. It is completely untested
search and replace patch, except for flagging the texture state as needing to
be recomputed when a sampler object is present.

Signed-off-by: Pauli Nieminen pauli.niemi...@linux.intel.com

---

 src/mesa/drivers/dri/nouveau/nouveau_state.c  |7 +++
 src/mesa/drivers/dri/nouveau/nv04_state_tex.c |   22 --
 src/mesa/drivers/dri/nouveau/nv10_state_tex.c |   23 +--
 src/mesa/drivers/dri/nouveau/nv20_state_tex.c |   25 ++---
 4 files changed, 46 insertions(+), 31 deletions(-)

diff --git a/src/mesa/drivers/dri/nouveau/nouveau_state.c 
b/src/mesa/drivers/dri/nouveau/nouveau_state.c
index 1579d29..5155da9 100644
--- a/src/mesa/drivers/dri/nouveau/nouveau_state.c
+++ b/src/mesa/drivers/dri/nouveau/nouveau_state.c
@@ -495,6 +495,13 @@ nouveau_update_state(struct gl_context *ctx, GLbitfield 
new_state)
context_dirty(ctx, MATERIAL_BACK_SHININESS);
}
 
+   if (new_state  _NEW_TEXTURE) {
+   for (i = 0; i  ctx-Const.MaxTextureUnits; i++) {
+   if (ctx-Texture.Unit[i].Sampler)
+   context_dirty_i(ctx, TEX_OBJ, i);
+   }
+   }
+
_swrast_InvalidateState(ctx, new_state);
_tnl_InvalidateState(ctx, new_state);
 
diff --git a/src/mesa/drivers/dri/nouveau/nv04_state_tex.c 
b/src/mesa/drivers/dri/nouveau/nv04_state_tex.c
index 807e2f3..e4d695a 100644
--- a/src/mesa/drivers/dri/nouveau/nv04_state_tex.c
+++ b/src/mesa/drivers/dri/nouveau/nv04_state_tex.c
@@ -32,6 +32,7 @@
 #include nv_object.xml.h
 #include nv04_3d.xml.h
 #include nv04_driver.h
+#include main/samplerobj.h
 
 static uint32_t
 get_tex_format(struct gl_texture_image *ti)
@@ -67,6 +68,7 @@ nv04_emit_tex_obj(struct gl_context *ctx, int emit)
if (ctx-Texture.Unit[i]._ReallyEnabled) {
struct gl_texture_object *t = ctx-Texture.Unit[i]._Current;
struct gl_texture_image *ti = t-Image[0][t-BaseLevel];
+   const struct gl_sampler_object *sa = _mesa_get_samplerobj(ctx, 
i);
int lod_max = 1, lod_bias = 0;
 
if (!nouveau_texture_validate(ctx, t))
@@ -74,26 +76,26 @@ nv04_emit_tex_obj(struct gl_context *ctx, int emit)
 
s = to_nouveau_texture(t)-surfaces[t-BaseLevel];
 
-   if (t-Sampler.MinFilter != GL_NEAREST 
-   t-Sampler.MinFilter != GL_LINEAR) {
-   lod_max = CLAMP(MIN2(t-Sampler.MaxLod, t-_MaxLambda),
+   if (sa-MinFilter != GL_NEAREST 
+   sa-MinFilter != GL_LINEAR) {
+   lod_max = CLAMP(MIN2(sa-MaxLod, t-_MaxLambda),
0, 15) + 1;
 
lod_bias = CLAMP(ctx-Texture.Unit[i].LodBias +
-t-Sampler.LodBias, -16, 15) * 8;
+sa-LodBias, -16, 15) * 8;
}
 
-   format |= nvgl_wrap_mode(t-Sampler.WrapT)  28 |
-   nvgl_wrap_mode(t-Sampler.WrapS)  24 |
+   format |= nvgl_wrap_mode(sa-WrapT)  28 |
+   nvgl_wrap_mode(sa-WrapS)  24 |
ti-HeightLog2  20 |
ti-WidthLog2  16 |
lod_max  12 |
get_tex_format(ti);
 
-   filter |= log2i(t-Sampler.MaxAnisotropy)  31 |
-   nvgl_filter_mode(t-Sampler.MagFilter)  28 |
-   log2i(t-Sampler.MaxAnisotropy)  27 |
-   nvgl_filter_mode(t-Sampler.MinFilter)  24 |
+   filter |= log2i(sa-MaxAnisotropy)  31 |
+   nvgl_filter_mode(sa-MagFilter)  28 |
+   log2i(sa-MaxAnisotropy)  27 |
+   nvgl_filter_mode(sa-MinFilter)  24 |
(lod_bias  0xff)  16;
 
} else {
diff --git a/src/mesa/drivers/dri/nouveau/nv10_state_tex.c 
b/src/mesa/drivers/dri/nouveau/nv10_state_tex.c
index b467bb3..3b76d66 100644
--- a/src/mesa/drivers/dri/nouveau/nv10_state_tex.c
+++ b/src/mesa/drivers/dri/nouveau/nv10_state_tex.c
@@ -31,6 +31,7 @@
 #include nv10_3d.xml.h
 #include nouveau_util.h
 #include nv10_driver.h
+#include main/samplerobj.h
 
 void
 nv10_emit_tex_gen(struct gl_context *ctx, int emit)
@@ -159,6 +160,7 @@ nv10_emit_tex_obj(struct gl_context *ctx, int emit)

Mesa (master): radeon: Fix printf format not to warn in 64bit

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

Author: Pauli Nieminen pauli.niemi...@linux.intel.com
Date:   Tue Jun 12 21:38:51 2012 +0300

radeon: Fix printf format not to warn in 64bit

When I build tested radeon changes I noticed two warnings about format
size missmatch in 64bit. I decided to clean them to make relevant
compiler warnings easier to spot.

Signed-off-by: Pauli Nieminen pauli.niemi...@linux.intel.com
Reviewed-by: Brian Paul bri...@vmware.com

---

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

diff --git a/src/mesa/drivers/dri/radeon/radeon_blit.c 
b/src/mesa/drivers/dri/radeon/radeon_blit.c
index b4932a2..2d4a2d6 100644
--- a/src/mesa/drivers/dri/radeon/radeon_blit.c
+++ b/src/mesa/drivers/dri/radeon/radeon_blit.c
@@ -390,13 +390,13 @@ unsigned r100_blit(struct gl_context *ctx,
 }
 
 if (0) {
-fprintf(stderr, src: size [%d x %d], pitch %d, offset %d 
+fprintf(stderr, src: size [%d x %d], pitch %d, offset %zd 
 offset [%d x %d], format %s, bo %p\n,
 src_width, src_height, src_pitch, src_offset,
 src_x_offset, src_y_offset,
 _mesa_get_format_name(src_mesaformat),
 src_bo);
-fprintf(stderr, dst: pitch %d offset %d, offset[%d x %d], format %s, 
bo %p\n,
+fprintf(stderr, dst: pitch %d offset %zd, offset[%d x %d], format %s, 
bo %p\n,
 dst_pitch, dst_offset,  dst_x_offset, dst_y_offset,
 _mesa_get_format_name(dst_mesaformat), dst_bo);
 fprintf(stderr, region: %d x %d\n, reg_width, reg_height);

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


Mesa (master): radeonr200: Add support for ARB_sampler_objects

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

Author: Pauli Nieminen pauli.niemi...@linux.intel.com
Date:   Tue Jun 12 21:38:52 2012 +0300

radeonr200: Add support for ARB_sampler_objects

Preparation for the mandatory support of ARB_sampler_objects. I have tested
this patch with rv280 only.

Signed-off-by: Pauli Nieminen pauli.niemi...@linux.intel.com
Reviewed-by: Brian Paul bri...@vmware.com

---

 src/mesa/drivers/dri/r200/r200_tex.c |   33 --
 src/mesa/drivers/dri/r200/r200_tex.h |1 +
 src/mesa/drivers/dri/r200/r200_texstate.c|3 +-
 src/mesa/drivers/dri/radeon/radeon_mipmap_tree.c |   16 +
 src/mesa/drivers/dri/radeon/radeon_span.c|4 ++-
 src/mesa/drivers/dri/radeon/radeon_tex.c |   38 -
 src/mesa/drivers/dri/radeon/radeon_tex.h |1 +
 src/mesa/drivers/dri/radeon/radeon_tex_copy.c|2 +-
 src/mesa/drivers/dri/radeon/radeon_texstate.c|4 ++-
 src/mesa/drivers/dri/radeon/radeon_texture.h |4 ++-
 10 files changed, 67 insertions(+), 39 deletions(-)

diff --git a/src/mesa/drivers/dri/r200/r200_tex.c 
b/src/mesa/drivers/dri/r200/r200_tex.c
index fe7c977..9d52095 100644
--- a/src/mesa/drivers/dri/r200/r200_tex.c
+++ b/src/mesa/drivers/dri/r200/r200_tex.c
@@ -41,6 +41,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
SOFTWARE.
 #include main/simple_list.h
 #include main/teximage.h
 #include main/texobj.h
+#include main/samplerobj.h
 
 #include radeon_mipmap_tree.h
 #include r200_context.h
@@ -360,12 +361,21 @@ static void r200TexEnv( struct gl_context *ctx, GLenum 
target,
}
 }
 
+void r200TexUpdateParameters(struct gl_context *ctx, GLuint unit)
+{
+   struct gl_sampler_object *samp = _mesa_get_samplerobj(ctx, unit);
+   radeonTexObj* t = radeon_tex_obj(ctx-Texture.Unit[unit]._Current);
+
+   r200SetTexMaxAnisotropy(t , samp-MaxAnisotropy);
+   r200SetTexFilter(t, samp-MinFilter, samp-MagFilter);
+   r200SetTexWrap(t, samp-WrapS, samp-WrapT, samp-WrapR);
+   r200SetTexBorderColor(t, samp-BorderColor.f);
+}
 
 /**
  * Changes variables and flags for a state update, which will happen at the
  * next UpdateTextureState
  */
-
 static void r200TexParameter( struct gl_context *ctx, GLenum target,
struct gl_texture_object *texObj,
GLenum pname, const GLfloat *params )
@@ -382,20 +392,10 @@ static void r200TexParameter( struct gl_context *ctx, 
GLenum target,
case GL_TEXTURE_MIN_FILTER:
case GL_TEXTURE_MAG_FILTER:
case GL_TEXTURE_MAX_ANISOTROPY_EXT:
-  r200SetTexMaxAnisotropy( t, texObj-Sampler.MaxAnisotropy );
-  r200SetTexFilter( t, texObj-Sampler.MinFilter, 
texObj-Sampler.MagFilter );
-  break;
-
case GL_TEXTURE_WRAP_S:
case GL_TEXTURE_WRAP_T:
case GL_TEXTURE_WRAP_R:
-  r200SetTexWrap( t, texObj-Sampler.WrapS, texObj-Sampler.WrapT, 
texObj-Sampler.WrapR );
-  break;
-
case GL_TEXTURE_BORDER_COLOR:
-  r200SetTexBorderColor( t, texObj-Sampler.BorderColor.f );
-  break;
-
case GL_TEXTURE_BASE_LEVEL:
case GL_TEXTURE_MAX_LEVEL:
case GL_TEXTURE_MIN_LOD:
@@ -489,6 +489,16 @@ static struct gl_texture_object 
*r200NewTextureObject(struct gl_context * ctx,
return t-base;
 }
 
+static struct gl_sampler_object *
+r200NewSamplerObject(struct gl_context *ctx, GLuint name)
+{
+   r200ContextPtr rmesa = R200_CONTEXT(ctx);
+   struct gl_sampler_object *samp = _mesa_new_sampler_object(ctx, name);
+   if (samp)
+  samp-MaxAnisotropy = rmesa-radeon.initialMaxAnisotropy;
+   return samp;
+}
+
 
 
 void r200InitTextureFuncs( radeonContextPtr radeon, struct dd_function_table 
*functions )
@@ -506,4 +516,5 @@ void r200InitTextureFuncs( radeonContextPtr radeon, struct 
dd_function_table *fu
functions-TexEnv   = r200TexEnv;
functions-TexParameter = r200TexParameter;
functions-TexGen   = r200TexGen;
+   functions-NewSamplerObject = r200NewSamplerObject;
 }
diff --git a/src/mesa/drivers/dri/r200/r200_tex.h 
b/src/mesa/drivers/dri/r200/r200_tex.h
index 756a128..725b45d 100644
--- a/src/mesa/drivers/dri/r200/r200_tex.h
+++ b/src/mesa/drivers/dri/r200/r200_tex.h
@@ -48,6 +48,7 @@ extern void r200DestroyTexObj( r200ContextPtr rmesa, 
radeonTexObjPtr t );
 extern void r200InitTextureFuncs( radeonContextPtr radeon, struct 
dd_function_table *functions );
 
 extern void r200UpdateFragmentShader( struct gl_context *ctx );
+extern void r200TexUpdateParameters(struct gl_context *ctx, GLuint unit);
 
 extern void set_re_cntl_d3d( struct gl_context *ctx, int unit, GLboolean 
use_d3d );
 
diff --git a/src/mesa/drivers/dri/r200/r200_texstate.c 
b/src/mesa/drivers/dri/r200/r200_texstate.c
index 19e77c5..b25c611 100644
--- a/src/mesa/drivers/dri/r200/r200_texstate.c
+++ 

Mesa (master): mesa/ff_shader: Fix sampler state reading

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

Author: Pauli Nieminen pauli.niemi...@linux.intel.com
Date:   Tue Jun 12 21:38:53 2012 +0300

mesa/ff_shader: Fix sampler state reading

Fixed function fragment shader generator was incorrectly read texture
sampling state directly from texture object. To make sure that
ARB_sampler_object works correctly shader generator has to use the
bound sampler if one exist.

Signed-off-by: Pauli Nieminen pauli.niemi...@linux.intel.com
Reviewed-by: Brian Paul bri...@vmware.com
Reviewed-by: Eric Anholt e...@anholt.net

---

 src/mesa/main/ff_fragment_shader.cpp |5 -
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/src/mesa/main/ff_fragment_shader.cpp 
b/src/mesa/main/ff_fragment_shader.cpp
index 0233f38..f743ce1 100644
--- a/src/mesa/main/ff_fragment_shader.cpp
+++ b/src/mesa/main/ff_fragment_shader.cpp
@@ -33,6 +33,7 @@ extern C {
 #include mtypes.h
 #include main/uniforms.h
 #include main/macros.h
+#include main/samplerobj.h
 #include program/program.h
 #include program/prog_parameter.h
 #include program/prog_cache.h
@@ -428,11 +429,13 @@ static GLuint make_state_key( struct gl_context *ctx,  
struct state_key *key )
   const struct gl_texture_unit *texUnit = ctx-Texture.Unit[i];
   const struct gl_texture_object *texObj = texUnit-_Current;
   const struct gl_tex_env_combine_state *comb = texUnit-_CurrentCombine;
+  const struct gl_sampler_object *samp;
   GLenum format;
 
   if (!texUnit-_ReallyEnabled || !texUnit-Enabled)
  continue;
 
+  samp = _mesa_get_samplerobj(ctx, i);
   format = texObj-Image[0][texObj-BaseLevel]-_BaseFormat;
 
   key-unit[i].enabled = 1;
@@ -444,7 +447,7 @@ static GLuint make_state_key( struct gl_context *ctx,  
struct state_key *key )
  translate_tex_src_bit(texUnit-_ReallyEnabled);
 
   key-unit[i].shadow =
- ((texObj-Sampler.CompareMode == GL_COMPARE_R_TO_TEXTURE) 
+ ((samp-CompareMode == GL_COMPARE_R_TO_TEXTURE) 
   ((format == GL_DEPTH_COMPONENT) || 
(format == GL_DEPTH_STENCIL_EXT)));
 

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


Mesa (master): mesa/program: Use sampler object state if present

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

Author: Pauli Nieminen pauli.niemi...@linux.intel.com
Date:   Tue Jun 12 21:38:54 2012 +0300

mesa/program: Use sampler object state if present

CompareFailValue is part of Sampler state that needs to be read from
bound sampler object if present.

Signed-off-by: Pauli Nieminen pauli.niemi...@linux.intel.com
Reviewed-by: Brian Paul bri...@vmware.com
Reviewed-by: Eric Anholt e...@anholt.net

---

 src/mesa/program/prog_statevars.c |5 -
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/src/mesa/program/prog_statevars.c 
b/src/mesa/program/prog_statevars.c
index 3d13386..9121221 100644
--- a/src/mesa/program/prog_statevars.c
+++ b/src/mesa/program/prog_statevars.c
@@ -37,6 +37,7 @@
 #include main/fbobject.h
 #include prog_statevars.h
 #include prog_parameter.h
+#include main/samplerobj.h
 
 
 /**
@@ -555,11 +556,13 @@ _mesa_fetch_state(struct gl_context *ctx, const 
gl_state_index state[],
 const int unit = (int) state[2];
 const struct gl_texture_object *texObj
= ctx-Texture.Unit[unit]._Current;
+const struct gl_sampler_object *samp =
+   _mesa_get_samplerobj(ctx, unit);
 if (texObj) {
value[0] =
value[1] =
value[2] =
-   value[3] = texObj-Sampler.CompareFailValue;
+   value[3] = samp-CompareFailValue;
 }
  }
  return;

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


Mesa (master): mesa: Make ARB_sampler_objects mandatory

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

Author: Pauli Nieminen pauli.niemi...@linux.intel.com
Date:   Tue Jun 12 21:38:55 2012 +0300

mesa: Make ARB_sampler_objects mandatory

To allow meta acceleration operations to use sampler objects the
ARB_sampler_objects extension needs to be mandatory for all drivers.
Because the extension doesn't have any hardware dependencies it is
trivial to implement.

Signed-off-by: Pauli Nieminen pauli.niemi...@linux.intel.com
Reviewed-by: Brian Paul bri...@vmware.com
Reviewed-by: Eric Anholt e...@anholt.net

---

 src/mesa/drivers/dri/intel/intel_extensions.c |1 -
 src/mesa/main/extensions.c|2 +-
 src/mesa/main/get.c   |7 +--
 src/mesa/main/mtypes.h|1 -
 src/mesa/main/version.c   |2 +-
 src/mesa/state_tracker/st_extensions.c|1 -
 6 files changed, 3 insertions(+), 11 deletions(-)

diff --git a/src/mesa/drivers/dri/intel/intel_extensions.c 
b/src/mesa/drivers/dri/intel/intel_extensions.c
index b752216..2d2245d 100755
--- a/src/mesa/drivers/dri/intel/intel_extensions.c
+++ b/src/mesa/drivers/dri/intel/intel_extensions.c
@@ -49,7 +49,6 @@ intelInitExtensions(struct gl_context *ctx)
ctx-Extensions.ARB_half_float_pixel = true;
ctx-Extensions.ARB_map_buffer_range = true;
ctx-Extensions.ARB_point_sprite = true;
-   ctx-Extensions.ARB_sampler_objects = true;
ctx-Extensions.ARB_shader_objects = true;
ctx-Extensions.ARB_shading_language_100 = true;
ctx-Extensions.ARB_sync = true;
diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c
index a7b481c..5e13a93 100644
--- a/src/mesa/main/extensions.c
+++ b/src/mesa/main/extensions.c
@@ -113,7 +113,7 @@ static const struct extension extension_table[] = {
{ GL_ARB_point_sprite,o(ARB_point_sprite),
GL, 2003 },
{ GL_ARB_provoking_vertex,o(EXT_provoking_vertex),
GL, 2009 },
{ GL_ARB_robustness,  o(dummy_true),  
GL, 2010 },
-   { GL_ARB_sampler_objects, o(ARB_sampler_objects), 
GL, 2009 },
+   { GL_ARB_sampler_objects, o(dummy_true),  
GL, 2009 },
{ GL_ARB_seamless_cube_map,   o(ARB_seamless_cube_map),   
GL, 2009 },
{ GL_ARB_shader_bit_encoding, o(ARB_shader_bit_encoding), 
GL, 2010 },
{ GL_ARB_shader_objects,  o(ARB_shader_objects),  
GL, 2002 },
diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c
index b9c98fb..16ad2c4 100644
--- a/src/mesa/main/get.c
+++ b/src/mesa/main/get.c
@@ -284,11 +284,6 @@ static const int extra_GLSL_130[] = {
EXTRA_END
 };
 
-static const int extra_ARB_sampler_objects[] = {
-   EXT(ARB_sampler_objects),
-   EXTRA_END
-};
-
 static const int extra_ARB_uniform_buffer_object_and_geometry_shader[] = {
EXT(ARB_uniform_buffer_object),
EXT(ARB_geometry_shader4),
@@ -1304,7 +1299,7 @@ static const struct value_desc values[] = {
 
/* GL_ARB_sampler_objects / GL 3.3 */
{ GL_SAMPLER_BINDING,
- LOC_CUSTOM, TYPE_INT, GL_SAMPLER_BINDING, extra_ARB_sampler_objects },
+ LOC_CUSTOM, TYPE_INT, GL_SAMPLER_BINDING, NO_EXTRA },
 
/* GL 3.0 */
{ GL_NUM_EXTENSIONS, LOC_CUSTOM, TYPE_INT, 0, extra_version_30 },
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index 68e05a6..e8adac9 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -2965,7 +2965,6 @@ struct gl_extensions
GLboolean ARB_occlusion_query;
GLboolean ARB_occlusion_query2;
GLboolean ARB_point_sprite;
-   GLboolean ARB_sampler_objects;
GLboolean ARB_seamless_cube_map;
GLboolean ARB_shader_bit_encoding;
GLboolean ARB_shader_objects;
diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c
index 91ef2df..85e6231 100644
--- a/src/mesa/main/version.c
+++ b/src/mesa/main/version.c
@@ -170,12 +170,12 @@ compute_version(struct gl_context *ctx)
   ctx-Extensions.ARB_explicit_attrib_location 
   ctx-Extensions.ARB_instanced_arrays 
   ctx-Extensions.ARB_occlusion_query2 
-  ctx-Extensions.ARB_sampler_objects 
   ctx-Extensions.ARB_shader_bit_encoding 
   ctx-Extensions.ARB_texture_rgb10_a2ui 
   ctx-Extensions.ARB_timer_query 
   ctx-Extensions.ARB_vertex_type_2_10_10_10_rev 
   

Mesa (master): swrast: Support sampler object for texture fetching state

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

Author: Pauli Nieminen pauli.niemi...@linux.intel.com
Date:   Tue Jun 12 21:38:56 2012 +0300

swrast: Support sampler object for texture fetching state

swrast needs to pass sampler object into all texture fetching functions
to use correct sampling state when sampler object is bound to the unit.
The changes were made using half manual regular expression replace.

v2: Fix NULL deref in _swrast_choose_triangle(), because the _Current
values aren't set yet, so we need to look at our texObj2D. (anholt)

Signed-off-by: Pauli Nieminen pauli.niemi...@linux.intel.com
Reviewed-by: Brian Paul bri...@vmware.com

---

 src/mesa/swrast/s_atifragshader.c |6 +-
 src/mesa/swrast/s_context.c   |4 +-
 src/mesa/swrast/s_context.h   |1 +
 src/mesa/swrast/s_fragprog.c  |   17 +-
 src/mesa/swrast/s_span.c  |8 +-
 src/mesa/swrast/s_texcombine.c|   42 ++-
 src/mesa/swrast/s_texfetch.c  |   18 +-
 src/mesa/swrast/s_texfetch.h  |2 +-
 src/mesa/swrast/s_texfilter.c |  692 -
 src/mesa/swrast/s_triangle.c  |   16 +-
 src/mesa/tnl/t_vb_program.c   |4 +-
 11 files changed, 449 insertions(+), 361 deletions(-)

Diff:   
http://cgit.freedesktop.org/mesa/mesa/diff/?id=cbdc1d53542b3ecca0085399c4bb3b3371f94809
___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): mesa: Allow meta module to call sampler functions

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

Author: Pauli Nieminen pauli.niemi...@linux.intel.com
Date:   Tue Jun 12 21:38:57 2012 +0300

mesa: Allow meta module to call sampler functions

To allow meta module to use sample objects mesa GL functions need to be
visible and linkable for meta module.

Signed-off-by: Pauli Nieminen pauli.niemi...@linux.intel.com
Reviewed-by: Brian Paul bri...@vmware.com
Reviewed-by: Eric Anholt e...@anholt.net

---

 src/mesa/main/samplerobj.c |8 
 src/mesa/main/samplerobj.h |   11 +++
 2 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/src/mesa/main/samplerobj.c b/src/mesa/main/samplerobj.c
index 5bb90cf..dc8adfc 100644
--- a/src/mesa/main/samplerobj.c
+++ b/src/mesa/main/samplerobj.c
@@ -160,7 +160,7 @@ _mesa_delete_sampler_object(struct gl_context *ctx,
 }
 
 
-static void GLAPIENTRY
+void GLAPIENTRY
 _mesa_GenSamplers(GLsizei count, GLuint *samplers)
 {
GET_CURRENT_CONTEXT(ctx);
@@ -192,7 +192,7 @@ _mesa_GenSamplers(GLsizei count, GLuint *samplers)
 }
 
 
-static void GLAPIENTRY
+void GLAPIENTRY
 _mesa_DeleteSamplers(GLsizei count, const GLuint *samplers)
 {
GET_CURRENT_CONTEXT(ctx);
@@ -242,7 +242,7 @@ _mesa_IsSampler(GLuint sampler)
 }
 
 
-static void GLAPIENTRY
+void GLAPIENTRY
 _mesa_BindSampler(GLuint unit, GLuint sampler)
 {
struct gl_sampler_object *sampObj;
@@ -600,7 +600,7 @@ set_sampler_srgb_decode(struct gl_context *ctx,
return GL_TRUE;
 }
 
-static void GLAPIENTRY
+void GLAPIENTRY
 _mesa_SamplerParameteri(GLuint sampler, GLenum pname, GLint param)
 {
struct gl_sampler_object *sampObj;
diff --git a/src/mesa/main/samplerobj.h b/src/mesa/main/samplerobj.h
index 0bfda43..2b0cd79 100644
--- a/src/mesa/main/samplerobj.h
+++ b/src/mesa/main/samplerobj.h
@@ -77,5 +77,16 @@ _mesa_init_sampler_object_functions(struct dd_function_table 
*driver);
 extern void
 _mesa_init_sampler_object_dispatch(struct _glapi_table *disp);
 
+extern void GLAPIENTRY
+_mesa_BindSampler(GLuint unit, GLuint sampler);
+
+extern void GLAPIENTRY
+_mesa_GenSamplers(GLsizei count, GLuint *samplers);
+
+extern void GLAPIENTRY
+_mesa_DeleteSamplers(GLsizei count, const GLuint *samplers);
+
+extern void GLAPIENTRY
+_mesa_SamplerParameteri(GLuint sampler, GLenum pname, GLint param);
 
 #endif /* SAMPLEROBJ_H */

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


Mesa (master): meta: Add sampler object to texture decompression

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

Author: Pauli Nieminen pauli.niemi...@linux.intel.com
Date:   Tue Jun 12 21:39:00 2012 +0300

meta: Add sampler object to texture decompression

Sampler objects can be used to shadow texture object state without
modifying original application state. Decompression path feels a bit
like path where caching shouldn't happen. But as everything else is
cached already I decided to cache sampler state too.

Signed-off-by: Pauli Nieminen pauli.niemi...@linux.intel.com
Reviewed-by: Brian Paul bri...@vmware.com
Reviewed-by: Eric Anholt e...@anholt.net

---

 src/mesa/drivers/common/meta.c |   44 +--
 1 files changed, 24 insertions(+), 20 deletions(-)

diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
index 6846bbc..13da1da 100644
--- a/src/mesa/drivers/common/meta.c
+++ b/src/mesa/drivers/common/meta.c
@@ -287,7 +287,7 @@ struct gen_mipmap_state
 struct decompress_state
 {
GLuint ArrayObj;
-   GLuint VBO, FBO, RBO;
+   GLuint VBO, FBO, RBO, Sampler;
GLint Width, Height;
 };
 
@@ -3295,6 +3295,7 @@ decompress_texture_image(struct gl_context *ctx,
struct vertex verts[4];
GLuint fboDrawSave, fboReadSave;
GLuint rbSave;
+   GLuint samplerSave;
 
if (slice  0) {
   assert(target == GL_TEXTURE_3D ||
@@ -3315,6 +3316,9 @@ decompress_texture_image(struct gl_context *ctx,
 
_mesa_meta_begin(ctx, MESA_META_ALL  ~MESA_META_PIXEL_STORE);
 
+   samplerSave = ctx-Texture.Unit[ctx-Texture.CurrentUnit].Sampler ?
+ ctx-Texture.Unit[ctx-Texture.CurrentUnit].Sampler-Name : 0;
+
/* Create/bind FBO/renderbuffer */
if (decompress-FBO == 0) {
   _mesa_GenFramebuffersEXT(1, decompress-FBO);
@@ -3362,6 +3366,22 @@ decompress_texture_image(struct gl_context *ctx,
   _mesa_BindBufferARB(GL_ARRAY_BUFFER_ARB, decompress-VBO);
}
 
+   if (!decompress-Sampler) {
+  _mesa_GenSamplers(1, decompress-Sampler);
+  _mesa_BindSampler(ctx-Texture.CurrentUnit, decompress-Sampler);
+  /* nearest filtering */
+  _mesa_SamplerParameteri(decompress-Sampler, GL_TEXTURE_MIN_FILTER, 
GL_NEAREST);
+  _mesa_SamplerParameteri(decompress-Sampler, GL_TEXTURE_MAG_FILTER, 
GL_NEAREST);
+  /* No sRGB decode or encode.*/
+  if (ctx-Extensions.EXT_texture_sRGB_decode) {
+ _mesa_SamplerParameteri(decompress-Sampler, 
GL_TEXTURE_SRGB_DECODE_EXT,
+ GL_SKIP_DECODE_EXT);
+  }
+
+   } else {
+  _mesa_BindSampler(ctx-Texture.CurrentUnit, decompress-Sampler);
+   }
+
setup_texture_coords(faceTarget, slice, width, height,
 verts[0].tex,
 verts[1].tex,
@@ -3387,26 +3407,14 @@ decompress_texture_image(struct gl_context *ctx,
 
{
   /* save texture object state */
-  const GLenum minFilterSave = texObj-Sampler.MinFilter;
-  const GLenum magFilterSave = texObj-Sampler.MagFilter;
   const GLint baseLevelSave = texObj-BaseLevel;
   const GLint maxLevelSave = texObj-MaxLevel;
-  const GLenum wrapSSave = texObj-Sampler.WrapS;
-  const GLenum wrapTSave = texObj-Sampler.WrapT;
-  const GLenum srgbSave = texObj-Sampler.sRGBDecode;
 
   /* restrict sampling to the texture level of interest */
   _mesa_TexParameteri(target, GL_TEXTURE_BASE_LEVEL, texImage-Level);
   _mesa_TexParameteri(target, GL_TEXTURE_MAX_LEVEL, texImage-Level);
-  /* nearest filtering */
-  _mesa_TexParameteri(target, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
-  _mesa_TexParameteri(target, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
 
   /* No sRGB decode or encode.*/
-  if (ctx-Extensions.EXT_texture_sRGB_decode) {
- _mesa_TexParameteri(target, GL_TEXTURE_SRGB_DECODE_EXT,
- GL_SKIP_DECODE_EXT);
-  }
   if (ctx-Extensions.EXT_framebuffer_sRGB) {
  _mesa_set_enable(ctx, GL_FRAMEBUFFER_SRGB_EXT, GL_FALSE);
   }
@@ -3417,17 +3425,11 @@ decompress_texture_image(struct gl_context *ctx,
   /* Restore texture object state, the texture binding will
* be restored by _mesa_meta_end().
*/
-  _mesa_TexParameteri(target, GL_TEXTURE_MIN_FILTER, minFilterSave);
-  _mesa_TexParameteri(target, GL_TEXTURE_MAG_FILTER, magFilterSave);
   if (target != GL_TEXTURE_RECTANGLE_ARB) {
  _mesa_TexParameteri(target, GL_TEXTURE_BASE_LEVEL, baseLevelSave);
  _mesa_TexParameteri(target, GL_TEXTURE_MAX_LEVEL, maxLevelSave);
   }
-  _mesa_TexParameteri(target, GL_TEXTURE_WRAP_S, wrapSSave);
-  _mesa_TexParameteri(target, GL_TEXTURE_WRAP_T, wrapTSave);
-  if (ctx-Extensions.EXT_texture_sRGB_decode) {
- _mesa_TexParameteri(target, GL_TEXTURE_SRGB_DECODE_EXT, srgbSave);
-  }
+
}
 
/* read pixels from renderbuffer */
@@ -3455,6 +3457,8 @@ 

Mesa (master): meta: Use sampler object in framebuffer blit

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

Author: Pauli Nieminen pauli.niemi...@linux.intel.com
Date:   Tue Jun 12 21:39:01 2012 +0300

meta: Use sampler object in framebuffer blit

Framebuffer blit needs to setup texture sampling with no reference to the
user's texturing state, and a sampler object lets us avoid a bunch of changes
to the user's state setup.

We don't bother caching the sampler object since we're changing parameters in
it based on the filtering option to glBlitFramebuffer().

Fixes piglit GL_ARB_sampler_objects/framebufferblit and rendering in l4d2 (our
setting of srgb decode wasn't being respected due to the user's sampler object
being active).

Signed-off-by: Pauli Nieminen pauli.niemi...@linux.intel.com
Reviewed-by: Brian Paul bri...@vmware.com
Reviewed-by: Eric Anholt e...@anholt.net

---

 src/mesa/drivers/common/meta.c |   31 ++-
 1 files changed, 14 insertions(+), 17 deletions(-)

diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
index 13da1da..af89d81 100644
--- a/src/mesa/drivers/common/meta.c
+++ b/src/mesa/drivers/common/meta.c
@@ -1350,15 +1350,13 @@ blitframebuffer_texture(struct gl_context *ctx,
   if (readAtt  readAtt-Texture) {
  const struct gl_texture_object *texObj = readAtt-Texture;
  const GLuint srcLevel = readAtt-TextureLevel;
- const GLenum minFilterSave = texObj-Sampler.MinFilter;
- const GLenum magFilterSave = texObj-Sampler.MagFilter;
  const GLint baseLevelSave = texObj-BaseLevel;
  const GLint maxLevelSave = texObj-MaxLevel;
- const GLenum wrapSSave = texObj-Sampler.WrapS;
- const GLenum wrapTSave = texObj-Sampler.WrapT;
- const GLenum srgbSave = texObj-Sampler.sRGBDecode;
  const GLenum fbo_srgb_save = ctx-Color.sRGBEnabled;
  const GLenum target = texObj-Target;
+ GLuint sampler, samplerSave =
+ctx-Texture.Unit[ctx-Texture.CurrentUnit].Sampler ?
+ctx-Texture.Unit[ctx-Texture.CurrentUnit].Sampler-Name : 0;
 
  if (drawAtt-Texture == readAtt-Texture) {
 /* Can't use same texture as both the source and dest.  We need
@@ -1373,6 +1371,9 @@ blitframebuffer_texture(struct gl_context *ctx,
 return mask;
  }
 
+ _mesa_GenSamplers(1, sampler);
+ _mesa_BindSampler(ctx-Texture.CurrentUnit, sampler);
+
  /*
  printf(Blit from texture!\n);
  printf(  srcAtt %p  dstAtt %p\n, readAtt, drawAtt);
@@ -1381,18 +1382,18 @@ blitframebuffer_texture(struct gl_context *ctx,
 
  /* Prepare src texture state */
  _mesa_BindTexture(target, texObj-Name);
- _mesa_TexParameteri(target, GL_TEXTURE_MIN_FILTER, filter);
- _mesa_TexParameteri(target, GL_TEXTURE_MAG_FILTER, filter);
+ _mesa_SamplerParameteri(sampler, GL_TEXTURE_MIN_FILTER, filter);
+ _mesa_SamplerParameteri(sampler, GL_TEXTURE_MAG_FILTER, filter);
  if (target != GL_TEXTURE_RECTANGLE_ARB) {
 _mesa_TexParameteri(target, GL_TEXTURE_BASE_LEVEL, srcLevel);
 _mesa_TexParameteri(target, GL_TEXTURE_MAX_LEVEL, srcLevel);
  }
- _mesa_TexParameteri(target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
- _mesa_TexParameteri(target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+ _mesa_SamplerParameteri(sampler, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+ _mesa_SamplerParameteri(sampler, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
 
 /* Always do our blits with no sRGB decode or encode.*/
 if (ctx-Extensions.EXT_texture_sRGB_decode) {
-   _mesa_TexParameteri(target, GL_TEXTURE_SRGB_DECODE_EXT,
+   _mesa_SamplerParameteri(sampler, GL_TEXTURE_SRGB_DECODE_EXT,
GL_SKIP_DECODE_EXT);
 }
  if (ctx-Extensions.EXT_framebuffer_sRGB) {
@@ -1452,21 +1453,17 @@ blitframebuffer_texture(struct gl_context *ctx,
  /* Restore texture object state, the texture binding will
   * be restored by _mesa_meta_end().
   */
- _mesa_TexParameteri(target, GL_TEXTURE_MIN_FILTER, minFilterSave);
- _mesa_TexParameteri(target, GL_TEXTURE_MAG_FILTER, magFilterSave);
  if (target != GL_TEXTURE_RECTANGLE_ARB) {
 _mesa_TexParameteri(target, GL_TEXTURE_BASE_LEVEL, baseLevelSave);
 _mesa_TexParameteri(target, GL_TEXTURE_MAX_LEVEL, maxLevelSave);
  }
- _mesa_TexParameteri(target, GL_TEXTURE_WRAP_S, wrapSSave);
- _mesa_TexParameteri(target, GL_TEXTURE_WRAP_T, wrapTSave);
-if (ctx-Extensions.EXT_texture_sRGB_decode) {
-   _mesa_TexParameteri(target, GL_TEXTURE_SRGB_DECODE_EXT, srgbSave);
-}
 if (ctx-Extensions.EXT_framebuffer_sRGB  fbo_srgb_save) {
_mesa_set_enable(ctx, 

Mesa (master): scons: Add support for Intel Compiler.

2012-08-01 Thread Vinson Lee
Module: Mesa
Branch: master
Commit: 8734584952ea257d53ce421959bd9706345f221f
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=8734584952ea257d53ce421959bd9706345f221f

Author: Vinson Lee v...@freedesktop.org
Date:   Tue Jul 31 22:55:39 2012 -0700

scons: Add support for Intel Compiler.

The patch makes the SCons build with Intel Compiler successful.

Signed-off-by: Vinson Lee v...@freedesktop.org
Reviewed-by: Brian Paul bri...@vmware.com

---

 scons/gallium.py   |6 ++
 src/gallium/winsys/svga/drm/SConscript |2 +-
 2 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/scons/gallium.py b/scons/gallium.py
index 458651b..f4776d8 100755
--- a/scons/gallium.py
+++ b/scons/gallium.py
@@ -141,6 +141,7 @@ def generate(env):
 env['msvc'] = env['CC'] == 'cl'
 env['suncc'] = env['platform'] == 'sunos' and os.path.basename(env['CC']) 
== 'cc'
 env['clang'] = env['CC'] == 'clang'
+env['icc'] = 'icc' == os.path.basename(env['CC'])
 
 if env['msvc'] and env['toolchain'] == 'default' and env['machine'] == 
'x86_64':
 # MSVC x64 support is broken in earlier versions of scons
@@ -154,6 +155,7 @@ def generate(env):
 gcc = env['gcc']
 msvc = env['msvc']
 suncc = env['suncc']
+icc = env['icc']
 
 # Determine whether we are cross compiling; in particular, whether we need
 # to compile code generators with a different compiler as the target code.
@@ -382,6 +384,10 @@ def generate(env):
 cflags += [
 '-Wdeclaration-after-statement',
 ]
+if icc:
+cflags += [
+'-std=gnu99',
+]
 if msvc:
 # See also:
 # - http://msdn.microsoft.com/en-us/library/19z1t1wy.aspx
diff --git a/src/gallium/winsys/svga/drm/SConscript 
b/src/gallium/winsys/svga/drm/SConscript
index 2d511d2..fea9df3 100644
--- a/src/gallium/winsys/svga/drm/SConscript
+++ b/src/gallium/winsys/svga/drm/SConscript
@@ -4,7 +4,7 @@ env = env.Clone()
 
 env.PkgUseModules('DRM')
 
-if env['gcc'] or env['clang']:
+if env['gcc'] or env['clang'] or env['icc']:
 env.Append(CCFLAGS = ['-fvisibility=hidden'])
 env.Append(CPPDEFINES = [
 'HAVE_STDINT_H', 

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