i965/fs: Don't double-accept operands of logical and/or/xor operations.

If the argument to emit_bool_to_cond_code() is an ir_expression, we
loop over the operands, calling accept() on each of them, which
generates assembly code to compute that subexpression.  We then emit
one or two final instruction that perform the top-level operation on
those operands.

If it's not an expression (say, a boolean-valued variable), we simply
call accept() on the whole value.

In commit 80ecb8f1 (i965/fs: Avoid generating extra AND instructions on
bool logic ops), Eric made logic operations jump out of the expression
path to the non-expression path.

Unfortunately, this meant that we would first accept() the two operands,
skip generating any code that used them, then accept() the whole
expression, generating code for the operands a second time.

Dead code elimination would always remove the first set of redundant
operand assembly, since nothing actually used them.  But we shouldn't
generate it in the first place.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
mesa: Include stdint.h in mtypes.h for uint32_t symbol.

This patch fixes the MSVC build error introduced with commit
b2e327e08f8519da131dd382adcc99240d433404.

api_arrayelt.c
src\mesa\main/mtypes.h(1809) : error C2061: syntax error : identifier 'uint32_t'
src\mesa\main/mtypes.h(1810) : error C2059: syntax error : '}'
src\mesa\main/mtypes.h(1825) : error C2079: 'Minimum' uses undefined union 'gl_perf_monitor_counter_value'
src\mesa\main/mtypes.h(1828) : error C2079: 'Maximum' uses undefined union 'gl_perf_monitor_counter_value'

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
configure.ac: Add a more informative warning when libclc.pc is not found v2

v2:
  - Don't display an error message when the user doesn't ask for libclc.

Reviewed-by: Matt Turner <mattst88@gmail.com>
st/mesa: fix GLSL mix(.., .., bvecN)

v2: use CMP on drivers without native integer support
radeon/llvm: fix TGSI_OPCODE_UCMP

This doesn't fix any known issue (I haven't run piglit with this yet),
but the code was obviously completely wrong. It looks like copy-pasted from CMP.

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
radeon drivers: handle PIPE_CAP_MAX_VIEWPORTS
r600g,radeonsi: consolidate transfer, cmask, and fmask structures
r600g: get rid of r600_texture::array_mode
r600g: get rid of r600_texture::is_rat

It's always 0.
r600g,radeonsi: consolidate r600_texture structures
r600g: move r600g-specific functions out of r600_texture.c
r600g,radeonsi: remove unused code
radeonsi: move radeonsi-specific functions out of r600_texture.c
r600g,radeonsi: share the async dma interface

r600_texture.c is one step closer to r600g.
r600g: move some debug options to drivers/radeon
radeonsi: move debug options to R600_DEBUG
r600g: move aux_context and r600_screen_clear_buffer to drivers/radeon

This will be used in the next commit.
radeonsi: implement clear_buffer using CP DMA, initialize CMASK with it

More work needs to be done for this to be entirely shared with r600g.
I'm just trying to share r600_texture.c now.

The reason I put the implementation to si_descriptors.c is that the emit
function had already been there.
r600g,radeonsi: consolidate tiling_info initialization

and the util_format_s3tc_init calls too.
r600g: move the low-level buffer functions for multiple rings to drivers/radeon

Also slightly optimize r600_buffer_map_sync_with_rings.