platform/upstream/mesa.git
13 years agoglsl: Fix gl_NormalMatrix swizzle setup to match i965's invariants.
Eric Anholt [Wed, 19 Oct 2011 00:17:28 +0000 (17:17 -0700)]
glsl: Fix gl_NormalMatrix swizzle setup to match i965's invariants.

A driver trying to set up builtin uniforms is faced with a problem:
How do I walk the ir_variable structure (representing an array of
structs, or array of matrices, or struct, or whatever), and set up
driver structures so that dereference of that uniform gets the
corresponding ParameterValues[] entry.  The rule in general is that
each corresponding vector-sized field of an array of structs is one
builtin uniform state slot.  i965 relied on another invariant: each
state slot has a number of unique channel swizzles corresponding to
the number of elements in the field's vector, to avoid needing to walk
the glsl_type in parallel to get at vector_elements.

All of the builtin uniforms followed this behavior, except for
gl_NormalMatrix.  That's a mat3 (so 3 vec3s), but it was swizzled as 3
vec4s.

Fixes piglit glsl-fs-normalmatrix.
Reviewed-by: Paul Berry <stereotype441@gmail.com>
13 years agoglsl: Add gl_MaxVaryingComponents in GLSL 1.30.
Eric Anholt [Fri, 21 Oct 2011 22:17:16 +0000 (15:17 -0700)]
glsl: Add gl_MaxVaryingComponents in GLSL 1.30.

This is the new name for gl_MaxVaryingFloats now that non-float
varyings exist.  Fixes piglit
glsl-1.30/execution/maximums/gl_MaxVaryingFloats

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
13 years agoi965: Apply post-sync non-zero workaround to homebrew workaround.
Kenneth Graunke [Fri, 21 Oct 2011 08:03:37 +0000 (01:03 -0700)]
i965: Apply post-sync non-zero workaround to homebrew workaround.

In commit 3e5d3626, Eric added a homebrew workaround to fix GPU hangs in
the Mesa "engine" demo and oglc's api-texcoord test.

Unfortunately, his PIPE_CONTROL contains a Depth Stall, which
necessitates the post-sync non-zero workaround,

Fixes GPU hangs in Civilization 4, PlaneShift, and 3DMMES.
Hopefully Heroes of Newerth as well, though I haven't tested that.

NOTE: This is candidate for the 7.11 branch.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=40324
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=41096
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-and-tested-by: Eric Anholt <eric@anholt.net>
13 years agodocs: update relnotes-7.12
Marek Olšák [Mon, 24 Oct 2011 19:08:13 +0000 (21:08 +0200)]
docs: update relnotes-7.12

13 years agor300g: expose ARB_ES2_compatibility by claiming FIXED format support
Marek Olšák [Mon, 24 Oct 2011 19:05:38 +0000 (21:05 +0200)]
r300g: expose ARB_ES2_compatibility by claiming FIXED format support

13 years agonv50: fix max texture levels
Adel Gadllah [Mon, 24 Oct 2011 17:41:03 +0000 (19:41 +0200)]
nv50: fix max texture levels

MAX_TEXTURE_2D_LEVELS and MAX_TEXTURE_CUBE_LEVELS are supposed to be
14 not 13, while MAX_TEXTURE_3D_LEVELS should be 12 not 10.

13 years agowinsys/radeon: don't use the new GEM_WAIT ioctl for now
Marek Olšák [Mon, 24 Oct 2011 17:44:49 +0000 (19:44 +0200)]
winsys/radeon: don't use the new GEM_WAIT ioctl for now

13 years agoOnly use gcc visibility support with gcc4+.
Tom Fogal [Wed, 19 Oct 2011 20:41:35 +0000 (14:41 -0600)]
Only use gcc visibility support with gcc4+.

I had a colleague hitting issues compiling with an old gcc3.2
system.  These patches got them through.

NOTE: This is a candidate for the 7.11 branch.

Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agowinsys/radeon: restore the old r600g winsys memory characteristics.
Mathias Fröhlich [Sat, 8 Oct 2011 19:33:23 +0000 (21:33 +0200)]
winsys/radeon: restore the old r600g winsys memory characteristics.

Use VRAM for static and immutable buffers. This restores the
recently removed r600g winsys behaviour for memory locations.
This also improoves rendering times on the gpu for some
OpenSceneGraph based test cases by about 15%.

Signed-off-by: Marek Olšák <maraeo@gmail.com>
13 years agoutil: remove gotos in u_upload_mgr.c
Brian Paul [Sun, 23 Oct 2011 16:14:27 +0000 (10:14 -0600)]
util: remove gotos in u_upload_mgr.c

We can trivially remove the gotos in two places in this code and make
it a bit more readable.

Reviewed-by: José Fonseca <jfonseca@vmware.com>
13 years agomesa: Avoid ABA problem on buffer object bind.
Mathias Fröhlich [Sat, 22 Oct 2011 10:57:01 +0000 (12:57 +0200)]
mesa: Avoid ABA problem on buffer object bind.

Make sure we do not run into the classic ABA problem on buffer object bind,
reusing this name and may be never rebind since we get an new name
that was just deleted and never rebound in between.
The explicit rebinding to the debault object in the current context
prevents the above in the current context, but another context
sharing the same objects might suffer from this problem.

Minor var renaming and comments edited by Brian.

Signed-off-by: Mathias Fröhlich <Mathias.Froehlich@web.de>
Signed-off-by: Brian Paul <brianp@vmware.com>
13 years agoswrast: fix comment typo (s/texure/texture/)
Brian Paul [Mon, 24 Oct 2011 02:21:18 +0000 (20:21 -0600)]
swrast: fix comment typo (s/texure/texture/)

13 years agomesa: remove dead code from teximage.c
Brian Paul [Mon, 24 Oct 2011 02:17:53 +0000 (20:17 -0600)]
mesa: remove dead code from teximage.c

13 years agomesa: Fix multithreaded buffer object refcounting.
Mathias Fröhlich [Wed, 19 Oct 2011 05:54:20 +0000 (07:54 +0200)]
mesa: Fix multithreaded buffer object refcounting.

Buffer objects may be shared across contexts.
Rework the array attrib push/pop implementation
to be thread safe. Make use of more library functions
for this purpose.

Signed-off-by: Mathias Fröhlich <Mathias.Froehlich@web.de>
Reviewed-by: Brian Paul <brianp@vmware.com>
13 years agor300g: don't call u_trim_pipe_prim in r300_swtcl_draw_vbo
Marek Olšák [Sun, 23 Oct 2011 18:29:06 +0000 (20:29 +0200)]
r300g: don't call u_trim_pipe_prim in r300_swtcl_draw_vbo

This was dead code anyway.

13 years agou_blitter: accept overriden width0 and height0
Marek Olšák [Fri, 21 Oct 2011 01:32:29 +0000 (03:32 +0200)]
u_blitter: accept overriden width0 and height0

We'll use this soon.

13 years agou_blitter: add a copy_texture function which uses views and not resources
Marek Olšák [Fri, 21 Oct 2011 00:09:40 +0000 (02:09 +0200)]
u_blitter: add a copy_texture function which uses views and not resources

The views (sampler views and surfaces) are great tools for changing resource
properties without having to change pipe_resource.

13 years agointel: remove duplicated #include of texstore.h
Brian Paul [Sun, 23 Oct 2011 17:19:46 +0000 (11:19 -0600)]
intel: remove duplicated #include of texstore.h

13 years agoradeon: remove unnecessary #includes of texstore.h
Brian Paul [Sun, 23 Oct 2011 17:18:22 +0000 (11:18 -0600)]
radeon: remove unnecessary #includes of texstore.h

13 years agoconfigs: add vmgfx-related dirs to configs/linux-dri
Brian Paul [Sun, 23 Oct 2011 16:39:38 +0000 (10:39 -0600)]
configs: add vmgfx-related dirs to configs/linux-dri

13 years agoswrast: update renderbuffer format assertion
Brian Paul [Sun, 23 Oct 2011 16:44:47 +0000 (10:44 -0600)]
swrast: update renderbuffer format assertion

Failed when exercising i965 swrast fallback rendering.

13 years agomesa: add swrast_texture_image::Buffer
Brian Paul [Sun, 23 Oct 2011 16:44:47 +0000 (10:44 -0600)]
mesa: add swrast_texture_image::Buffer

In the past, swrast_texture_image::Data has been overloaded.  It could
either point to malloc'd memory storing texture data, or it could point
to a current mapping of GPU memory.

Now, Buffer always points to malloc'd memory (if we're not using GPU
memory) and Data always points to mapped memory.  The next step would
be to rename Data -> Map.

This change also involves adding swrast functions for mapping textures
and renderbuffers prior to rendering to setup the Data pointer.  Plus,
corresponding functions to unmap texures and renderbuffers.  This is
very much like similar code in the dri drivers.

13 years agomesa: remove _mesa_alloc_texmemory(), _mesa_free_texmemory()
Brian Paul [Sun, 23 Oct 2011 16:44:47 +0000 (10:44 -0600)]
mesa: remove _mesa_alloc_texmemory(), _mesa_free_texmemory()

Core Mesa no longer does any texture memory allocation.

13 years agomesa: move gl_texture_image::Data, RowStride, ImageOffsets to swrast
Brian Paul [Sun, 23 Oct 2011 16:44:47 +0000 (10:44 -0600)]
mesa: move gl_texture_image::Data, RowStride, ImageOffsets to swrast

Only swrast and the drivers that fall back to swrast need these fields now.
This removes the last of the fields related to software rendering from
gl_texture_image.

13 years agollvmpipe: point out that there's two stencil writemasks
Brian Paul [Sun, 23 Oct 2011 16:08:06 +0000 (10:08 -0600)]
llvmpipe: point out that there's two stencil writemasks

In lp_build_stencil_op() the incoming 'stencil' var is a 2-element array.
There's a front-face writemask and a back-face writemask but we're ignoring
the later.  This patch doesn't fix anything but at least points out the
problem.

13 years agollvmpipe: compare front_facing to NULL to improve readability
Brian Paul [Sun, 23 Oct 2011 16:05:14 +0000 (10:05 -0600)]
llvmpipe: compare front_facing to NULL to improve readability

Compare 'front_facing' to NULL to make it more obvious that front_facing
is a pointer and not a simple boolean value.

13 years agogallivm: added lp_build_print_ivec4() function
Brian Paul [Sun, 23 Oct 2011 16:02:53 +0000 (10:02 -0600)]
gallivm: added lp_build_print_ivec4() function

13 years agomesa: improve the warning message in _mesa_choose_tex_format()
Brian Paul [Sun, 23 Oct 2011 16:00:00 +0000 (10:00 -0600)]
mesa: improve the warning message in _mesa_choose_tex_format()

Bug 42128 hits this _mesa_warning() call.

13 years agoglsl: Add support for constant expression evaluation on round(), roundEven().
Eric Anholt [Tue, 27 Sep 2011 21:54:10 +0000 (14:54 -0700)]
glsl: Add support for constant expression evaluation on round(), roundEven().

v2: Avoid the C99 rounding functions, because I don't trust
get/setting the C99 rounding mode from inside our library not having
other side effects.  Instead, open-code roundEven() behavior around
Mesa's IROUND, which we're already testing for C99 rounding mode
safety.

Fixes glsl-1.30/compiler/built-in-functions/round*

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agodri-r600: Hook up a drm_descriptor configuration function
Mathias Fröhlich [Fri, 14 Oct 2011 14:25:21 +0000 (16:25 +0200)]
dri-r600: Hook up a drm_descriptor configuration function

Returns a configuration that makes the dri state-tracker-manager
throttle.

13 years agor600g: make r[67]00 not bail out on PRED_SETNE_INT.
Mathias Fröhlich [Sun, 23 Oct 2011 06:57:43 +0000 (08:57 +0200)]
r600g: make r[67]00 not bail out on PRED_SETNE_INT.

13 years agor600g: make if's use PRED_SETNE_INT no matter what.
Dave Airlie [Sat, 22 Oct 2011 19:13:20 +0000 (20:13 +0100)]
r600g: make if's use PRED_SETNE_INT no matter what.

This is more correct for TGSI if, and with native ints enabled
it fixes 25 piglit fails.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agor600g: print inst in hex in dumps
Dave Airlie [Sat, 22 Oct 2011 19:11:26 +0000 (20:11 +0100)]
r600g: print inst in hex in dumps

since we have them as hex in the headers.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agor600g: drop specific i2f it should be a trans only op2.
Dave Airlie [Sat, 22 Oct 2011 19:08:44 +0000 (20:08 +0100)]
r600g: drop specific i2f it should be a trans only op2.

Signed-off-by: Dave Airlie <airlied@redhat.com>
13 years agovbo: Clean up unused variables in the vbo module.
Mathias Froehlich [Wed, 3 Aug 2011 06:10:52 +0000 (08:10 +0200)]
vbo: Clean up unused variables in the vbo module.

Remove some unused or unused but set variables
from the vbo module.

13 years agoConvert additional GNUC_MINOR checks to multiplied version
Alan Coopersmith [Fri, 21 Oct 2011 22:43:28 +0000 (15:43 -0700)]
Convert additional GNUC_MINOR checks to multiplied version

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
13 years agoFix gcc version checks for _mesa_bitcount
Alan Coopersmith [Fri, 21 Oct 2011 00:14:05 +0000 (17:14 -0700)]
Fix gcc version checks for  _mesa_bitcount

- Fix _GNUC__ typo in both checks
- Fix logic error in check for gcc < 3.4 that breaks for gcc 2.x & older

Without this fix, builds with gcc 3.4.x end up depending on undefined
_mesa_bitcount instead of gcc's __builtin_popcount.

NOTE: This is a candidate for the stable branches.

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
13 years agogallium/targets: Add vdpau target for nouveau
Maarten Lankhorst [Tue, 18 Oct 2011 12:24:30 +0000 (14:24 +0200)]
gallium/targets: Add vdpau target for nouveau

Should fall back to shader based decoding (g3dvl) for now.

This is probably broken on systems that support xvmc, because
nouveau_video_buffer_create has no way to know for what api
the buffer is created, so I think this call might need a
separate argument as workaround.

Signed-off-by: Maarten Lankhorst <m.b.lankhorst@gmail.com>
13 years agod3d1x: set primitive restart in the correct draw calls
Christoph Bumiller [Thu, 20 Oct 2011 21:36:15 +0000 (23:36 +0200)]
d3d1x: set primitive restart in the correct draw calls

13 years agonv50/ir: import SM4 converter
Christoph Bumiller [Tue, 18 Oct 2011 16:36:57 +0000 (18:36 +0200)]
nv50/ir: import SM4 converter

13 years agonouveau,nvc0: fix/improve handling of multiple constant buffers
Christoph Bumiller [Thu, 20 Oct 2011 20:42:59 +0000 (22:42 +0200)]
nouveau,nvc0: fix/improve handling of multiple constant buffers

13 years agonvc0: add support for linear and buffer textures and RTs
Christoph Bumiller [Tue, 18 Oct 2011 10:08:19 +0000 (12:08 +0200)]
nvc0: add support for linear and buffer textures and RTs

13 years agonvc0: add support for clip distance shader outputs
Christoph Bumiller [Tue, 18 Oct 2011 10:07:01 +0000 (12:07 +0200)]
nvc0: add support for clip distance shader outputs

13 years agonvc0: handle more query types
Christoph Bumiller [Fri, 21 Oct 2011 20:58:18 +0000 (22:58 +0200)]
nvc0: handle more query types

13 years agonvc0: fix location of the PrimitiveID output
Christoph Bumiller [Sat, 15 Oct 2011 09:49:55 +0000 (11:49 +0200)]
nvc0: fix location of the PrimitiveID output

13 years agonvc0: prevent VERTEXID/INSTANCEID from consuming input slots
Christoph Bumiller [Mon, 17 Oct 2011 21:26:57 +0000 (23:26 +0200)]
nvc0: prevent VERTEXID/INSTANCEID from consuming input slots

13 years agonvc0: fixes for program tessellation parameters
Christoph Bumiller [Mon, 17 Oct 2011 21:30:02 +0000 (23:30 +0200)]
nvc0: fixes for program tessellation parameters

13 years agonv50,nvc0: reset per-instance state for inactive vertex elements
Christoph Bumiller [Sat, 15 Oct 2011 10:03:03 +0000 (12:03 +0200)]
nv50,nvc0: reset per-instance state for inactive vertex elements

13 years agonv50,nvc0: reset base element in draw_arrays
Christoph Bumiller [Fri, 14 Oct 2011 20:22:04 +0000 (22:22 +0200)]
nv50,nvc0: reset base element in draw_arrays

It affects VERTEX_BUFFER_FIRST,COUNT submission, too.

13 years agonvc0: apply first_layer offset to all resources with array_size
Christoph Bumiller [Tue, 11 Oct 2011 09:41:47 +0000 (11:41 +0200)]
nvc0: apply first_layer offset to all resources with array_size

Makes CUBE arrays work with d3d1x.

13 years agonvc0: emit state to allow GP to select the RT layer
Christoph Bumiller [Fri, 14 Oct 2011 20:19:01 +0000 (22:19 +0200)]
nvc0: emit state to allow GP to select the RT layer

13 years agonvc0: validate GP samplers, textures
Christoph Bumiller [Fri, 14 Oct 2011 20:16:48 +0000 (22:16 +0200)]
nvc0: validate GP samplers, textures

13 years agonvc0: fix clear_render_target/depth_stencil region
Christoph Bumiller [Fri, 14 Oct 2011 20:12:42 +0000 (22:12 +0200)]
nvc0: fix clear_render_target/depth_stencil region

In all 3 dimensions (now clearing all layers too).

13 years agonvc0: fix assertion that immediate array buffer fits
Christoph Bumiller [Sun, 25 Sep 2011 16:00:07 +0000 (18:00 +0200)]
nvc0: fix assertion that immediate array buffer fits

13 years agonv50/ir: use RDSV to fetch FrontFacing before lowering
Christoph Bumiller [Mon, 17 Oct 2011 21:04:11 +0000 (23:04 +0200)]
nv50/ir: use RDSV to fetch FrontFacing before lowering

13 years agonv50/ir: fix textureGrad with offsets and in non-FPs
Christoph Bumiller [Tue, 11 Oct 2011 15:58:14 +0000 (17:58 +0200)]
nv50/ir: fix textureGrad with offsets and in non-FPs

13 years agonv50/ir: add wrap mode for shift operations
Christoph Bumiller [Mon, 17 Oct 2011 21:02:16 +0000 (23:02 +0200)]
nv50/ir: add wrap mode for shift operations

D3D1x specifies that only the low 5 bit of the shift are used.

13 years agonv50/ir: initialize RelocInfo to 0
Christoph Bumiller [Thu, 6 Oct 2011 18:45:08 +0000 (20:45 +0200)]
nv50/ir: initialize RelocInfo to 0

13 years agonvc0/ir: fix emission of cvt when register and type size differ
Christoph Bumiller [Thu, 6 Oct 2011 12:32:58 +0000 (14:32 +0200)]
nvc0/ir: fix emission of cvt when register and type size differ

13 years agonv50/ir: fix argument count for CUBE_ARRAY texture target
Christoph Bumiller [Fri, 14 Oct 2011 17:58:04 +0000 (19:58 +0200)]
nv50/ir: fix argument count for CUBE_ARRAY texture target

13 years agonvc0/ir: GP emit address must end up in $r0
Christoph Bumiller [Mon, 17 Oct 2011 21:00:59 +0000 (23:00 +0200)]
nvc0/ir: GP emit address must end up in $r0

13 years agonvc0/ir: TXQ requires different lowering from normal TEX
Christoph Bumiller [Fri, 14 Oct 2011 17:56:33 +0000 (19:56 +0200)]
nvc0/ir: TXQ requires different lowering from normal TEX

13 years agonv50/ir: initialize default prog_info values for GP,TP
Christoph Bumiller [Fri, 14 Oct 2011 17:54:34 +0000 (19:54 +0200)]
nv50/ir: initialize default prog_info values for GP,TP

13 years agonv50/ir: fix memory value equality check
Christoph Bumiller [Fri, 14 Oct 2011 17:49:22 +0000 (19:49 +0200)]
nv50/ir: fix memory value equality check

13 years agonv50/ir: fix leak in removal of graph root
Christoph Bumiller [Fri, 14 Oct 2011 17:47:45 +0000 (19:47 +0200)]
nv50/ir: fix leak in removal of graph root

13 years agod3d1x: fix/improve OMSetRenderTargets
Christoph Bumiller [Thu, 20 Oct 2011 18:43:11 +0000 (20:43 +0200)]
d3d1x: fix/improve OMSetRenderTargets

Don't count trailing NULL RTVs.
Don't skip update if only DSV has changed.

13 years agod3d1x: avoid translating invalid blend, depth or stencil state
Christoph Bumiller [Thu, 13 Oct 2011 20:36:27 +0000 (22:36 +0200)]
d3d1x: avoid translating invalid blend, depth or stencil state

13 years agod3d1x: add support for buffer views
Christoph Bumiller [Thu, 13 Oct 2011 20:29:12 +0000 (22:29 +0200)]
d3d1x: add support for buffer views

13 years agod3d1x: improve CreateInputLayout
Christoph Bumiller [Thu, 13 Oct 2011 20:27:40 +0000 (22:27 +0200)]
d3d1x: improve CreateInputLayout

13 years agod3d1x/context: fix IASetVertexBuffers stride comparison
Christoph Bumiller [Wed, 5 Oct 2011 14:56:24 +0000 (16:56 +0200)]
d3d1x/context: fix IASetVertexBuffers stride comparison

13 years agod3d1x: use ZS formats for TYPELESS resources with DS binding
Christoph Bumiller [Thu, 13 Oct 2011 19:27:09 +0000 (21:27 +0200)]
d3d1x: use ZS formats for TYPELESS resources with DS binding

13 years agod3d1x: use resource format if view format is UNKNOWN
Christoph Bumiller [Mon, 17 Oct 2011 18:50:23 +0000 (20:50 +0200)]
d3d1x: use resource format if view format is UNKNOWN

13 years agod3d1x: fix shadow comparison to gallium enum off by one
Christoph Bumiller [Sun, 25 Sep 2011 17:03:44 +0000 (19:03 +0200)]
d3d1x: fix shadow comparison to gallium enum off by one

13 years agod3d1x: improve CheckFormatSupport
Christoph Bumiller [Mon, 17 Oct 2011 18:49:56 +0000 (20:49 +0200)]
d3d1x: improve CheckFormatSupport

13 years agod3d1x: update format mapping table
Christoph Bumiller [Thu, 13 Oct 2011 17:31:51 +0000 (19:31 +0200)]
d3d1x: update format mapping table

Use the proper integer formats.
Fix mapping of some PIPE depth formats to DXGI.

13 years agod3d1x: fix translation of subresource to layer
Christoph Bumiller [Thu, 20 Oct 2011 18:12:51 +0000 (20:12 +0200)]
d3d1x: fix translation of subresource to layer

13 years agod3d1x: fix initial data upload for 3D textures
Christoph Bumiller [Thu, 13 Oct 2011 12:25:44 +0000 (14:25 +0200)]
d3d1x: fix initial data upload for 3D textures

13 years agod3d1x: MipLevels -1 in resource view desc means all
Christoph Bumiller [Thu, 13 Oct 2011 12:22:37 +0000 (14:22 +0200)]
d3d1x: MipLevels -1 in resource view desc means all

13 years agod3d1x/dxgi: fix initialization of pipe_box for Present copy
Christoph Bumiller [Tue, 11 Oct 2011 12:22:32 +0000 (14:22 +0200)]
d3d1x/dxgi: fix initialization of pipe_box for Present copy

13 years agod3d1x: implement array textures
Christoph Bumiller [Thu, 13 Oct 2011 12:40:44 +0000 (14:40 +0200)]
d3d1x: implement array textures

13 years agonvc0/ir: handle levelZero modifier in TEX emission
Christoph Bumiller [Thu, 13 Oct 2011 11:53:39 +0000 (13:53 +0200)]
nvc0/ir: handle levelZero modifier in TEX emission

13 years agonvc0/ir: fix lowering of DIV F32
Christoph Bumiller [Fri, 23 Sep 2011 16:39:48 +0000 (18:39 +0200)]
nvc0/ir: fix lowering of DIV F32

13 years agod3d1x: fix refcounting of GalliumD3D11DeviceChild objects
Christoph Bumiller [Wed, 12 Oct 2011 19:08:40 +0000 (21:08 +0200)]
d3d1x: fix refcounting of GalliumD3D11DeviceChild objects

An external Release would have lowered the device reference count,
but an internal reference in the context does not raise it (by
design).

13 years agonvc0/ir: fix xy confusion typo in readTessCoord
Christoph Bumiller [Wed, 12 Oct 2011 18:44:53 +0000 (20:44 +0200)]
nvc0/ir: fix xy confusion typo in readTessCoord

13 years agod3d1x/sm4: save CUSTOMDATA
Christoph Bumiller [Wed, 12 Oct 2011 17:37:02 +0000 (19:37 +0200)]
d3d1x/sm4: save CUSTOMDATA

This is the data for the immediate constant buffer.

13 years agod3d1x: add FORK/JOIN phase opcodes to declarations
Christoph Bumiller [Wed, 12 Oct 2011 16:04:50 +0000 (18:04 +0200)]
d3d1x: add FORK/JOIN phase opcodes to declarations

The phase instance counts are not necessarily redeclared so with
the separation of declarations and instructions we wouldn't know
which instance count applies to which phase.

13 years agod3d1x: add shader signature to sm4_program
Christoph Bumiller [Thu, 20 Oct 2011 16:37:07 +0000 (18:37 +0200)]
d3d1x: add shader signature to sm4_program

Correct linkage requires examining the signature itself, it cannot
be reconstructed from declarations only since unused registers may
have been omitted from them.

13 years agod3d1x: attempt to detect D3D10 feature level
Christoph Bumiller [Wed, 12 Oct 2011 15:35:30 +0000 (17:35 +0200)]
d3d1x: attempt to detect D3D10 feature level

Virtually all applications refuse to use the D3D10 backend if this
level is not supported, which makes testing annoying.

13 years agod3d1x: switch to TGSI SAMPLE opcodes
Christoph Bumiller [Thu, 20 Oct 2011 16:32:23 +0000 (18:32 +0200)]
d3d1x: switch to TGSI SAMPLE opcodes

We don't want to clutter the code or handicap new hardware for
the sake of ancient GPUs on which d3d1x won't ever be used,
much less be fully compliant, anyway.

13 years agost/mesa: fix a bug in and re-org setup_interleaved_attribs()
Brian Paul [Fri, 21 Oct 2011 16:09:48 +0000 (10:09 -0600)]
st/mesa: fix a bug in and re-org setup_interleaved_attribs()

We were mis-computing the size of the user-space vertex buffer in
some circumstances.  This led to a failed assertion at u_inlines.h:222
when using the VMware svga driver.

For example, if we had arrays such as:

array[0]: element_offset = 12, stride = 24
array[1]: element_offset = 0, stride = 24

We'd mistakenly compute 'bytes' to be 12 bytes too small.

I've reorganized the function too.  By time it's called, we know that
we've got interleaved arrays either all in one VBO or all in user memory
and the stride is equal for all arrays.

Move the code that lived inside the attr==0 test after the loop.

In the loop we compute the true vertex size.  That size factors into the
pipe->redefine_user_buffer() call later.  Using the vertex size instead
of array[0]'s element_offset fixes the failed assertion.

Reviewed-by: José Fonseca <jfonseca@vmware.com>
13 years agoglsl: Short-circuit lower_if_to_cond_assign when MaxIfDepth is UINT_MAX.
Kenneth Graunke [Tue, 18 Oct 2011 22:04:37 +0000 (15:04 -0700)]
glsl: Short-circuit lower_if_to_cond_assign when MaxIfDepth is UINT_MAX.

Setting MaxIfDepth to UINT_MAX effectively means "don't lower anything."

Explicitly checking for this common case allows us to avoid walking the
IR, computing nesting levels, and so on.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Bryan Cain <bryancain3@gmail.com>
13 years agoi965: Set MaxIfDepth to UINT_MAX on Gen6+ and 16 on prior generations.
Kenneth Graunke [Tue, 20 Sep 2011 06:47:56 +0000 (23:47 -0700)]
i965: Set MaxIfDepth to UINT_MAX on Gen6+ and 16 on prior generations.

Commit 488fe51cf823ccd137c667f1e92dd86f8323b723 converted the EmitNoIfs
flag to MaxIfDepth, an unsigned integer saying "flatten if-statements
nested beyond this depth."

Unfortunately, i965 left this initialized to 0, which made ir_to_mesa
attempt to flatten all if-statements.  We didn't notice right away
because we usually throw away ir_to_mesa's code in favor of the native
VS and FS backends...but this still creates a lot of unnecessary work.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
13 years agoapple: Use the correct (OpenGL.framework) glViewport and glScissor during init
Jeremy Huddleston [Fri, 21 Oct 2011 07:22:40 +0000 (00:22 -0700)]
apple: Use the correct (OpenGL.framework) glViewport and glScissor during init

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
13 years agoapple: Silence some debug spew
Jeremy Huddleston [Fri, 21 Oct 2011 05:54:08 +0000 (22:54 -0700)]
apple: Silence some debug spew

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
13 years agor600g: cleanup r600_reset_blittable_to_compressed
Marek Olšák [Fri, 21 Oct 2011 00:00:40 +0000 (02:00 +0200)]
r600g: cleanup r600_reset_blittable_to_compressed

13 years agost/mesa: Initialize variable.
Vinson Lee [Thu, 20 Oct 2011 23:52:53 +0000 (16:52 -0700)]
st/mesa: Initialize variable.

ptr is uninitialized if ib is NULL.

Fixes Coverity uninitialized pointer read defect.

Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
13 years agoAdd solaris detection for PIPE_ARCH_LITTLE_ENDIAN/PIPE_ARCH_BIG_ENDIAN
Alan Coopersmith [Tue, 18 Oct 2011 21:04:15 +0000 (14:04 -0700)]
Add solaris detection for PIPE_ARCH_LITTLE_ENDIAN/PIPE_ARCH_BIG_ENDIAN

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
13 years agoi965: Remove copy and pasted gen7_wm_constants state atom.
Kenneth Graunke [Wed, 19 Oct 2011 00:05:30 +0000 (17:05 -0700)]
i965: Remove copy and pasted gen7_wm_constants state atom.

Now that this is identical to gen6_wm_constants, just use that instead.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: Use AUB_TRACE_WM_CONSTANTS in gen7_prepare_wm_push_constants.
Kenneth Graunke [Wed, 19 Oct 2011 00:05:29 +0000 (17:05 -0700)]
i965: Use AUB_TRACE_WM_CONSTANTS in gen7_prepare_wm_push_constants.

This makes it match gen6_prepare_wm_push_constants.  For some reason, it
had been using AUB_TRACE_NO_TYPE.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
13 years agoi965: Fix incorrect dirty bit in gen6_prepare_wm_push_constants.
Kenneth Graunke [Wed, 19 Oct 2011 00:05:28 +0000 (17:05 -0700)]
i965: Fix incorrect dirty bit in gen6_prepare_wm_push_constants.

We definitely want CACHE_NEW_WM_PROG, not CACHE_NEW_VS_PROG.

NOTE: This is a candidate for the 7.11 branch.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>