mesa.git
12 years agoradeonsi: add shader data infrastructure
Christian König [Sun, 12 Aug 2012 17:16:48 +0000 (19:16 +0200)]
radeonsi: add shader data infrastructure

With this we can embed data for the shaders (like resource
descriptors) into the PM4 stream.

Signed-off-by: Christian König <deathsimple@vodafone.de>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
12 years agoradeon/llvm: add support to fetch temps as vectors
Christian König [Sun, 12 Aug 2012 18:06:21 +0000 (20:06 +0200)]
radeon/llvm: add support to fetch temps as vectors

Necessary for texture fetches with temp regs as source on SI.

Signed-off-by: Christian König <deathsimple@vodafone.de>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
12 years agoradeon/llvm: Remove AMDGPUUtil.cpp
Tom Stellard [Thu, 26 Jul 2012 19:20:14 +0000 (19:20 +0000)]
radeon/llvm: Remove AMDGPUUtil.cpp

12 years agoradeon/llvm: Cleanup AMDGPUUtil.cpp
Apostolos Bartziokas [Thu, 26 Jul 2012 19:00:20 +0000 (15:00 -0400)]
radeon/llvm: Cleanup AMDGPUUtil.cpp

12 years agoradeon/llvm: Lower loads from USE_SGPR adddress space during DAG lowering
Tom Stellard [Thu, 26 Jul 2012 14:30:23 +0000 (14:30 +0000)]
radeon/llvm: Lower loads from USE_SGPR adddress space during DAG lowering

12 years agoradeon/llvm: Add live-in registers during DAG lowering
Tom Stellard [Wed, 25 Jul 2012 19:17:16 +0000 (19:17 +0000)]
radeon/llvm: Add live-in registers during DAG lowering

Psuedo instructions emulating live-in registers have been removed
and their corresponding intrinsics are now being lowered during DAG
lowering.

12 years agoradeon/llvm: Lower store_output intrinsic during DAG lowering
Tom Stellard [Thu, 26 Jul 2012 17:10:47 +0000 (17:10 +0000)]
radeon/llvm: Lower store_output intrinsic during DAG lowering

12 years agoradeon/llvm: Force VTX_READ instructions to use same reg for src and dst
Tom Stellard [Wed, 15 Aug 2012 18:19:27 +0000 (18:19 +0000)]
radeon/llvm: Force VTX_READ instructions to use same reg for src and dst

I was seeing some GPU hangs that seemed to be cause by ALU instructions
writing to the same register used as the source for VTX_READ.  Adding
this constraint to the VTX_READ instructions avoids this situation.

12 years agoradeonsi: fix build breakage after u_blitter changes
Marek Olšák [Wed, 15 Aug 2012 18:03:23 +0000 (20:03 +0200)]
radeonsi: fix build breakage after u_blitter changes

12 years agogallium/u_blitter: document custom meta helpers
Marek Olšák [Mon, 13 Aug 2012 21:37:30 +0000 (23:37 +0200)]
gallium/u_blitter: document custom meta helpers

12 years agor600g: disable handling of DISCARD_RANGE
Marek Olšák [Wed, 15 Aug 2012 17:11:51 +0000 (19:11 +0200)]
r600g: disable handling of DISCARD_RANGE

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

12 years agor600g: implement timestamp query and get_timestamp hook
Marek Olšák [Thu, 5 Jul 2012 18:06:41 +0000 (20:06 +0200)]
r600g: implement timestamp query and get_timestamp hook

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
12 years agor600g: enable MSAA on evergreen by default
Marek Olšák [Thu, 9 Aug 2012 15:22:35 +0000 (17:22 +0200)]
r600g: enable MSAA on evergreen by default

v2: add the DRM version check

12 years agor600g: implement copying between MSAA textures
Marek Olšák [Thu, 9 Aug 2012 15:21:56 +0000 (17:21 +0200)]
r600g: implement copying between MSAA textures

12 years agor600g: implement MSAA color resolve
Marek Olšák [Thu, 9 Aug 2012 15:21:10 +0000 (17:21 +0200)]
r600g: implement MSAA color resolve

12 years agor600g: implement MSAA depth-stencil decompression and resolve
Marek Olšák [Thu, 9 Aug 2012 15:17:18 +0000 (17:17 +0200)]
r600g: implement MSAA depth-stencil decompression and resolve

and integer textures, which are resolved the same as depth, I think.

12 years agor600g: implement TXQ_LZ opcode
Marek Olšák [Thu, 9 Aug 2012 15:01:46 +0000 (17:01 +0200)]
r600g: implement TXQ_LZ opcode

12 years agor600g: implement MSAA rendering and texturing for evergreen and cayman
Marek Olšák [Thu, 9 Aug 2012 14:48:45 +0000 (16:48 +0200)]
r600g: implement MSAA rendering and texturing for evergreen and cayman

12 years agor600g: implement set_sample_mask
Marek Olšák [Sun, 22 Jul 2012 05:48:52 +0000 (07:48 +0200)]
r600g: implement set_sample_mask

12 years agor600g: implement alpha-to-coverage
Marek Olšák [Sun, 22 Jul 2012 04:36:58 +0000 (06:36 +0200)]
r600g: implement alpha-to-coverage

12 years agor600g: implement alpha-to-one
Marek Olšák [Fri, 3 Aug 2012 23:50:10 +0000 (01:50 +0200)]
r600g: implement alpha-to-one

12 years agor600g: remove support for 3-channel colorbuffers
Marek Olšák [Sat, 4 Aug 2012 12:29:25 +0000 (14:29 +0200)]
r600g: remove support for 3-channel colorbuffers

We have no sampler support for them.

12 years agoconfigure.ac: bump libdrm_radeon requirement to 2.6.38
Marek Olšák [Sun, 12 Aug 2012 15:18:23 +0000 (17:18 +0200)]
configure.ac: bump libdrm_radeon requirement to 2.6.38

12 years agowinsys/radeon: print error if CS is overflowed
Marek Olšák [Sat, 4 Aug 2012 18:02:30 +0000 (20:02 +0200)]
winsys/radeon: print error if CS is overflowed

and don't submit the CS to the kernel.

12 years agogallium/u_blitter: implement X and Y texture flipping
Marek Olšák [Sat, 4 Aug 2012 01:15:29 +0000 (03:15 +0200)]
gallium/u_blitter: implement X and Y texture flipping

12 years agogallium/u_blitter: implement blitting multisample resources
Marek Olšák [Wed, 25 Jul 2012 10:38:22 +0000 (12:38 +0200)]
gallium/u_blitter: implement blitting multisample resources

It can blit only one sample at a time (it should be called in a loop).

12 years agogallium: add TGSI support for multisample textures
Marek Olšák [Sat, 28 Jul 2012 11:29:02 +0000 (13:29 +0200)]
gallium: add TGSI support for multisample textures

The only allowed instructions are TXQ_LZ and TXF.

TXQ_LZ is like TXQ, but without the LOD parameter (which is always zero
with MSAA textures)

The 3rd or the 4th texcoord component in TXF should contain the sample index
for a 2D_MSAA or 2D_ARRAY_MSAA texture, respectively.

12 years agogallium/tgsi: fix TGSI text parser
Marek Olšák [Sat, 4 Aug 2012 17:11:44 +0000 (19:11 +0200)]
gallium/tgsi: fix TGSI text parser

The problem was that the string matching succeeded e.g. for "2D" when there
was actually "2D_MSAA" and then failed parsing "_MSAA".

To prevent similar failures in the future, let's fix this kind of error
everywhere.

12 years agogallium/u_blit: set dst format from pipe_resource, not pipe_surface
Marek Olšák [Sun, 5 Aug 2012 00:46:41 +0000 (02:46 +0200)]
gallium/u_blit: set dst format from pipe_resource, not pipe_surface

We use it to decide whether we can use resource_copy_region.

NOTE: This is a candidate for the 8.0 branch.

12 years agogallium: make pipe_box signed in order to represent flipped blits
Marek Olšák [Sat, 4 Aug 2012 01:14:14 +0000 (03:14 +0200)]
gallium: make pipe_box signed in order to represent flipped blits

This will be used by u_blitter.

12 years agost/mesa: don't clamp fragment color with integer colorbuffer
Marek Olšák [Sat, 4 Aug 2012 11:32:21 +0000 (13:32 +0200)]
st/mesa: don't clamp fragment color with integer colorbuffer

12 years agomesa: flush vertices in test_framebuffer_completeness
Marek Olšák [Sat, 4 Aug 2012 11:37:03 +0000 (13:37 +0200)]
mesa: flush vertices in test_framebuffer_completeness

12 years agost/egl: Fix up for ClientVersion -> ClientMajorVersion rename.
Michel Dänzer [Wed, 15 Aug 2012 08:49:22 +0000 (10:49 +0200)]
st/egl: Fix up for ClientVersion -> ClientMajorVersion rename.

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

Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
12 years agoi965: add ARB_texture_rgb10_a2ui support
Jordan Justen [Sat, 9 Jun 2012 19:19:11 +0000 (12:19 -0700)]
i965: add ARB_texture_rgb10_a2ui support

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agometa: allow CopyTexSubImage on integer formats
Jordan Justen [Thu, 21 Jun 2012 16:40:47 +0000 (09:40 -0700)]
meta: allow CopyTexSubImage on integer formats

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa ReadPixels: handle signed/unsigned integer clamping
Jordan Justen [Mon, 25 Jun 2012 21:14:25 +0000 (14:14 -0700)]
mesa ReadPixels: handle signed/unsigned integer clamping

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa pack: handle packed integer formats with clamping
Jordan Justen [Tue, 10 Jul 2012 17:41:46 +0000 (10:41 -0700)]
mesa pack: handle packed integer formats with clamping

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa unpack: call _mesa_problem when unpack function is not available
Jordan Justen [Tue, 10 Jul 2012 18:07:54 +0000 (11:07 -0700)]
mesa unpack: call _mesa_problem when unpack function is not available

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa texstore: handle signed/unsigned integer clamping
Jordan Justen [Mon, 25 Jun 2012 21:16:11 +0000 (14:16 -0700)]
mesa texstore: handle signed/unsigned integer clamping

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa GetTexImage: handle signed/unsigned integer clamping
Jordan Justen [Mon, 25 Jun 2012 21:15:31 +0000 (14:15 -0700)]
mesa GetTexImage: handle signed/unsigned integer clamping

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa pack: handle uint and int clamping properly
Jordan Justen [Mon, 25 Jun 2012 21:08:37 +0000 (14:08 -0700)]
mesa pack: handle uint and int clamping properly

Rename _mesa_pack_rgba_span_int to _mesa_pack_rgba_span_from_uints.
Add _mesa_pack_rgba_span_from_ints.

These separate routines allow the integer clamping to be handled
properly for signed versus unsigned integers.

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agointel: Fix rendering to a multisample front buffer
Chad Versace [Thu, 9 Aug 2012 16:24:29 +0000 (09:24 -0700)]
intel: Fix rendering to a multisample front buffer

We need to downsample before flushing BUFFER_FAKE_FRONT_LEFT to
BUFFER_FRONT_LEFT in intel_flush_front.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
12 years agointel: Clean up intel_flush_front
Chad Versace [Thu, 9 Aug 2012 16:21:21 +0000 (09:21 -0700)]
intel: Clean up intel_flush_front

Stop repeating ourselves. Replace the 4 instances of
`driContext->driDrawablePriv` with `driDrawable`.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
12 years agointel: Refactor intel_downsample_for_dri2_flush
Chad Versace [Thu, 9 Aug 2012 16:15:36 +0000 (09:15 -0700)]
intel: Refactor intel_downsample_for_dri2_flush

Move it from intel_screen.c to intel_context.c. Redeclare as non-static.
A future commit will use it in multiple files.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
12 years agodocs: Add EGL extensions to release notes
Ian Romanick [Tue, 14 Aug 2012 22:45:17 +0000 (15:45 -0700)]
docs: Add EGL extensions to release notes

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
12 years agoegl: Allow OpenGL ES 3.0 as a version
Ian Romanick [Thu, 19 Jul 2012 23:12:13 +0000 (16:12 -0700)]
egl: Allow OpenGL ES 3.0 as a version

In the DRI2 back-end this will get the same API as GLES 2.0.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agodri2: Note that __DRI_API_GLES2 is also used for OpenGL ES 3.0
Ian Romanick [Wed, 18 Jul 2012 21:29:29 +0000 (14:29 -0700)]
dri2: Note that __DRI_API_GLES2 is also used for OpenGL ES 3.0

Unlike 1.x to 2.0, OpenGL ES 3.0 is backwards compatible with 2.0.  Use the
same API flag for both.  Applications that specifically want 3.0 will specify
this using the major / minor version attributes.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoegl_dri2: Add support for EGL_KHR_create_context and EGL_EXT_create_context_robustness
Ian Romanick [Thu, 19 Jul 2012 23:04:01 +0000 (16:04 -0700)]
egl_dri2: Add support for EGL_KHR_create_context and EGL_EXT_create_context_robustness

Just like in GLX, EGL_KHR_create_context requires DRI2 version >= 3, and
EGL_EXT_create_context_robustness requires both DRI2 version >= 3 and the
__DRI2_ROBUSTNESS extension.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoegl: Implement front-end support for EGL_EXT_create_context_robustness
Ian Romanick [Thu, 19 Jul 2012 22:08:06 +0000 (15:08 -0700)]
egl: Implement front-end support for EGL_EXT_create_context_robustness

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoegl: Implement front-end support for EGL_KHR_create_context
Ian Romanick [Thu, 19 Jul 2012 18:10:15 +0000 (11:10 -0700)]
egl: Implement front-end support for EGL_KHR_create_context

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoegl_dri2: Silence warnings about missing initializers
Ian Romanick [Thu, 19 Jul 2012 18:08:02 +0000 (11:08 -0700)]
egl_dri2: Silence warnings about missing initializers

egl_dri2.c: At top level:
egl_dri2.c:325:4: warning: missing initializer [-Wmissing-field-initializers]
egl_dri2.c:325:4: warning: (near initialization for 'swrast_driver_extensions[2].version') [-Wmissing-field-initializers]
egl_dri2.c:330:4: warning: missing initializer [-Wmissing-field-initializers]
egl_dri2.c:330:4: warning: (near initialization for 'swrast_core_extensions[1].version') [-Wmissing-field-initializers]

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoegl: Rename ClientVersion to ClientMajorVersion, add ClientMinorVersion
Ian Romanick [Wed, 18 Jul 2012 22:59:15 +0000 (15:59 -0700)]
egl: Rename ClientVersion to ClientMajorVersion, add ClientMinorVersion

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoegl_dri2: Use createContextAttribs if DRI2 version >= 3
Ian Romanick [Wed, 18 Jul 2012 21:41:28 +0000 (14:41 -0700)]
egl_dri2: Use createContextAttribs if DRI2 version >= 3

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoegl_dri2: Require DRI2 version 2
Ian Romanick [Wed, 18 Jul 2012 20:17:50 +0000 (13:17 -0700)]
egl_dri2: Require DRI2 version 2

The extra block in dri2_create_context is to prevent extra white space noise
in the next patch.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agodri_util: Compare against the correct API enums
Ian Romanick [Tue, 7 Aug 2012 16:58:55 +0000 (09:58 -0700)]
dri_util: Compare against the correct API enums

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agomesa: Enable GL_ARB_invalidate_subdata
Ian Romanick [Mon, 13 Aug 2012 20:17:33 +0000 (13:17 -0700)]
mesa: Enable GL_ARB_invalidate_subdata

v2: Add GL_ARB_invalidate_subdata to release notes at Brian's
suggestion.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa: Add skeleton implementations of glInvalidateTex{Sub,}Image
Ian Romanick [Mon, 13 Aug 2012 20:14:25 +0000 (13:14 -0700)]
mesa: Add skeleton implementations of glInvalidateTex{Sub,}Image

These are part of GL_ARB_invalidate_subdata (but not OpenGL ES 3.0).

v2: Add comment explaining why minimum dimensions are set to 1 for some
texture targets.  Add default case to switch statement to silence
compiler warnings and detect new texture targets.  Both changes
suggested by Brian.  Also use _mesa_is_desktop_gl as suggested by Ken.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agomesa: Add skeleton implementations of glInvalidateBuffer{Sub,}Data
Ian Romanick [Mon, 13 Aug 2012 17:27:33 +0000 (10:27 -0700)]
mesa: Add skeleton implementations of glInvalidateBuffer{Sub,}Data

These are part of GL_ARB_invalidate_subdata (but not OpenGL ES 3.0).

v2: Use _mesa_bufferobj_mapped instead of testing
gl_buffer_object::Pointer as suggested by Brian.  Also use
_mesa_is_desktop_gl as suggested by Ken.

v3: Add a comment by the map subrange / discard range overlap test and
fix an off-by-one error noticed by Ken.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agomesa/es: Pass context to _mesa_init_bufferobj_dispatch
Ian Romanick [Mon, 13 Aug 2012 17:23:22 +0000 (10:23 -0700)]
mesa/es: Pass context to _mesa_init_bufferobj_dispatch

With this change _mesa_init_bufferobj_dispatch won't set function
pointers that don't exist in OpenGL ES.

v2: Use _mesa_is_desktop_gl and _mesa_is_gles3 as suggested by Ken.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agomesa: Add skeleton implementations of glInvalidate{Sub,}Framebuffer
Ian Romanick [Mon, 13 Aug 2012 16:27:00 +0000 (09:27 -0700)]
mesa: Add skeleton implementations of glInvalidate{Sub,}Framebuffer

These are part of GL_ARB_invalidate_subdata and OpenGL ES 3.0.

v2: Reject aux buffers in core context, and use _mesa_is_desktop_gl and
_mesa_is_gles3.  Both suggested by Ken.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoglapi: Add GL_ARB_invalidate_subdata
Ian Romanick [Mon, 13 Aug 2012 20:15:24 +0000 (13:15 -0700)]
glapi: Add GL_ARB_invalidate_subdata

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa/es3: Add _mesa_is_gles3 predicate
Ian Romanick [Tue, 14 Aug 2012 20:24:00 +0000 (13:24 -0700)]
mesa/es3: Add _mesa_is_gles3 predicate

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agointel: Implement ARB_texture_storage
Ian Romanick [Sat, 11 Aug 2012 04:31:57 +0000 (21:31 -0700)]
intel: Implement ARB_texture_storage

This is basically cut-and-paste from the swrast implementation, and it
could probably be (slightly) more optimal.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agomesa: update glext.h to version 83
Ian Romanick [Sat, 11 Aug 2012 04:47:04 +0000 (21:47 -0700)]
mesa: update glext.h to version 83

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agobuild: Use MKDIR_P in src/mesa/Makefile.am
Matt Turner [Wed, 1 Aug 2012 21:26:41 +0000 (14:26 -0700)]
build: Use MKDIR_P in src/mesa/Makefile.am

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agobuild: Use AM_V_GEN in src/mesa/Makefile.am
Matt Turner [Wed, 1 Aug 2012 21:24:31 +0000 (14:24 -0700)]
build: Use AM_V_GEN in src/mesa/Makefile.am

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agobuild: Fix autogen.sh to allow out-of-tree builds
Matt Turner [Wed, 1 Aug 2012 21:11:31 +0000 (14:11 -0700)]
build: Fix autogen.sh to allow out-of-tree builds

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agobuild: Fix out-of-tree generation of builtin_function.cpp
Matt Turner [Wed, 1 Aug 2012 21:09:22 +0000 (14:09 -0700)]
build: Fix out-of-tree generation of builtin_function.cpp

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agobuild: Fix gtest out-of-tree build
Matt Turner [Wed, 1 Aug 2012 21:07:00 +0000 (14:07 -0700)]
build: Fix gtest out-of-tree build

Introduced by 3d000e7dd.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agobuild: Fix out-of-tree generation of api_exec_es{1,2}.c
Matt Turner [Wed, 1 Aug 2012 21:05:36 +0000 (14:05 -0700)]
build: Fix out-of-tree generation of api_exec_es{1,2}.c

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agobuild/sources.mak: Add src/glsl/glcpp to INCLUDE_DIRS
Matt Turner [Wed, 1 Aug 2012 21:02:23 +0000 (14:02 -0700)]
build/sources.mak: Add src/glsl/glcpp to INCLUDE_DIRS

Fixes problem where libdricore's of-out-tree build couldn't find
glcpp.h.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agobuild/sources.mak: Remove unused GLSL_LIBS
Matt Turner [Wed, 1 Aug 2012 21:01:12 +0000 (14:01 -0700)]
build/sources.mak: Remove unused GLSL_LIBS

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agomesa: Kill GL_ARB_shadow_ambient with fire
Ian Romanick [Sat, 11 Aug 2012 02:16:37 +0000 (19:16 -0700)]
mesa: Kill GL_ARB_shadow_ambient with fire

No driver supports this extension, and it seems unlikely than any driver
ever will.  I think r300c may have supported it at one time, but that
driver has already been removed.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Marek Olšák <maraeo@gmail.com>
12 years agoradeon/llvm: Inline immediate offset when lowering implicit parameters
Tom Stellard [Wed, 1 Aug 2012 16:20:20 +0000 (16:20 +0000)]
radeon/llvm: Inline immediate offset when lowering implicit parameters

12 years agoradeon/llvm: Use correct opcocde for BREAK_LOGICALNZ_i32
Tom Stellard [Mon, 13 Aug 2012 21:29:46 +0000 (21:29 +0000)]
radeon/llvm: Use correct opcocde for BREAK_LOGICALNZ_i32

12 years agoscons: Populate top_srcdir and top_builddir variables when reading Makefiles.sources.
José Fonseca [Tue, 14 Aug 2012 11:18:45 +0000 (12:18 +0100)]
scons: Populate top_srcdir and top_builddir variables when reading Makefiles.sources.

This is not entirely correct, as scons doesn't put binaries in a
"src" subdirectory, but doesn't seem to be a problem for now.

12 years agomesa: Use GLdouble for depthMax in final unpack conversions.
Kenneth Graunke [Mon, 13 Aug 2012 07:35:41 +0000 (00:35 -0700)]
mesa: Use GLdouble for depthMax in final unpack conversions.

The final step of _mesa_unpack_depth_span is to take the temporary
GLfloat depth values and convert them to the desired format.  When
converting to GL_UNSIGNED_INTEGER with depthMax > 0xffffff, we use
double-precision math to avoid overflow and precision problems.

Or at least that's the idea.  Unfortunately

   GLdouble z = depthValues[i] * (GLfloat) depthMax;

actually causes single-precision multiplication, since both operands are
GLfloats.  Casting depthMax to GLdouble causes the scaling to be done
with double-precision math.

Fixes a regression in oglconform's depth-stencil basic.read.ds test
since c60ac7b17993d28af65b04f9bbbf3ee74c35358c, where the expected and
actual values differed slightly.  For example, 0xcfa7a6 vs. 0xcfa7a4.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=49772
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoi965: Fix the scaling of seconds to ms in perf debug.
Eric Anholt [Tue, 14 Aug 2012 00:49:06 +0000 (17:49 -0700)]
i965: Fix the scaling of seconds to ms in perf debug.

*headdesk*

12 years agoi965: Validate API and version in brwCreateContext
Ian Romanick [Tue, 7 Aug 2012 19:43:17 +0000 (12:43 -0700)]
i965: Validate API and version in brwCreateContext

v2: Use base-10 for versions like gl_context::Version.  Suggested by Ken.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoi915: Validate API and version in i915CreateContext
Ian Romanick [Tue, 7 Aug 2012 19:30:14 +0000 (12:30 -0700)]
i915: Validate API and version in i915CreateContext

v2: Use base-10 for versions like gl_context::Version.  Suggested by Ken.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoi830: Validate API and version before calling i830CreateContext
Ian Romanick [Tue, 7 Aug 2012 19:16:35 +0000 (12:16 -0700)]
i830: Validate API and version before calling i830CreateContext

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
12 years agointel: In the i915 driver, the chipset cannot be i965
Ian Romanick [Tue, 7 Aug 2012 19:05:35 +0000 (12:05 -0700)]
intel: In the i915 driver, the chipset cannot be i965

In the i965 dirver, the chipset must be i965.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agodri: Pass API_OPENGL_CORE through to the drivers
Ian Romanick [Tue, 7 Aug 2012 18:26:19 +0000 (11:26 -0700)]
dri: Pass API_OPENGL_CORE through to the drivers

This forces the drivers to do at least some validation of context API
and version before creating the context.  In r100 and r200 drivers, this
means that they don't do any post-hoc validation.

v2: Actually reject compatibility profile 3.2+ contexts.  Thanks Ken.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agomesa: Filter a bunch more functions based on API
Ian Romanick [Wed, 8 Aug 2012 17:29:11 +0000 (10:29 -0700)]
mesa: Filter a bunch more functions based on API

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agomesa: Don't advertise extensions that are part of GL 1.5 in a core context
Ian Romanick [Wed, 8 Aug 2012 17:00:32 +0000 (10:00 -0700)]
mesa: Don't advertise extensions that are part of GL 1.5 in a core context

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agomesa: Don't advertise extensions that are part of GL 1.4 in a core context
Ian Romanick [Wed, 8 Aug 2012 16:59:09 +0000 (09:59 -0700)]
mesa: Don't advertise extensions that are part of GL 1.4 in a core context

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agomesa: Don't advertise extensions that are part of GL 1.3 in a core context
Ian Romanick [Wed, 8 Aug 2012 16:54:55 +0000 (09:54 -0700)]
mesa: Don't advertise extensions that are part of GL 1.3 in a core context

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agomesa: Don't advertise extensions that are part of GL 1.2 in a core context
Ian Romanick [Wed, 8 Aug 2012 16:51:38 +0000 (09:51 -0700)]
mesa: Don't advertise extensions that are part of GL 1.2 in a core context

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agomesa: Don't advertise deprecated extensions in a core context
Ian Romanick [Wed, 8 Aug 2012 16:11:58 +0000 (09:11 -0700)]
mesa: Don't advertise deprecated extensions in a core context

It may be possible to trim the list of extensions futher.  These are
just the obvious extensions that add functionality that the core context
explicitly forbids.  Apple's core-context extension list is *just* the
extensions on top of the core GL version.  I'm not sure we want to go
that far, but removing some things that have been in core since 2.1 may
be okay.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agobuild: Fix libdricore out-of-tree builds (v2)
Christopher James Halse Rogers [Thu, 19 Jul 2012 02:30:12 +0000 (12:30 +1000)]
build: Fix libdricore out-of-tree builds (v2)

v2: Add both top_srcdir and top_builddir to mesa asm include dirs.
    These require both in-tree and build-time-generated files.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
12 years agobuild/mapi: More killing of TOP in favour of top_srcdir
Christopher James Halse Rogers [Thu, 19 Jul 2012 02:30:11 +0000 (12:30 +1000)]
build/mapi: More killing of TOP in favour of top_srcdir

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
12 years agobuild/glsl: fix location of generated files.
Christopher James Halse Rogers [Thu, 19 Jul 2012 02:30:10 +0000 (12:30 +1000)]
build/glsl: fix location of generated files.

Like in src/mesa, use GLSL_BUILDDIR/GLSL_SRCDIR to unambiguously
distinguish between in-tree and generated files.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
12 years agobuild/glapi: fix includes for generated files
Christopher James Halse Rogers [Thu, 19 Jul 2012 02:30:09 +0000 (12:30 +1000)]
build/glapi: fix includes for generated files

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
12 years agobuild: fix out of tree generation of glapi_mapi_tmp.h
Christopher James Halse Rogers [Thu, 19 Jul 2012 02:30:08 +0000 (12:30 +1000)]
build: fix out of tree generation of glapi_mapi_tmp.h

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
12 years agobuild/glx: fix include paths for out-of-tree builds
Christopher James Halse Rogers [Thu, 19 Jul 2012 02:30:07 +0000 (12:30 +1000)]
build/glx: fix include paths for out-of-tree builds

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
12 years agobuild: fix location of generated files in src/mesa (v4)
Christopher James Halse Rogers [Thu, 19 Jul 2012 02:30:06 +0000 (12:30 +1000)]
build: fix location of generated files in src/mesa (v4)

Also fix include paths for the generated headers.

v2: Switch to using self-explanatory BUILDDIR/SRCDIR defined from
    top_builddir/top_srcdir rather than the ambiguous TOP.
v3: Add both top_builddir and top_srcdir to include flags for mesa asm.
    These rely on both in-tree and build-time-generated includes.
v4: Rebased on top of 948c8f502a.

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
Signed-off-by: Matt Turner <mattst88@gmail.com>
12 years agointel: Reserve enough space to finish occlusion queries on Gen6.
Kenneth Graunke [Fri, 10 Aug 2012 17:26:04 +0000 (10:26 -0700)]
intel: Reserve enough space to finish occlusion queries on Gen6.

After realizing that brw_finish_batch emitted some final PIPE_CONTROLs
to record occlusion queries, Chris noted that we probably hadn't
reserved enough space to actually emit them.

Reserving a full 60 bytes seems a bit harsh, since we only need that
much if occlusion queries are actually active.  Plus, 28 bytes would be
sufficient for Gen7, and 24 for Gen4-5.

We could optimize this in the future, but it doesn't seem too critical.

NOTE: This is a candidate for stable release branches.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=53311
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agointel: Move finish_batch() call before MI_BATCH_BUFFER_END and padding.
Kenneth Graunke [Fri, 10 Aug 2012 17:26:03 +0000 (10:26 -0700)]
intel: Move finish_batch() call before MI_BATCH_BUFFER_END and padding.

On Gen4+, brw_finish_batch() calls brw_emit_query_end(), which emits
some extra PIPE_CONTROLs to capture the current occlusion query data.
Unfortunately, it was being called *after* _intel_batchbuffer_flush
added the MI_BATCH_BUFFER_END, meaning those PIPE_CONTROLs didn't get
inside the batch.

Not only does this likely cause bogus occlusion query values, it can
also cause crashes: with the recent change to use 64-bit depth count
writes on Gen6+, we started emitting an odd-length PIPE_CONTROL, which
happened after the MI_NOOP padding.  This resulted in an odd-length
batch buffer, which resulted in execbuf2 returning -EINVAL and the
application dying with an intel_do_flush_locked failure.

On older generations, finish_batch() doesn't emit any state, so this
change shouldn't have any effect.

Huge thanks to Chris Wilson for helping me figure this out.

NOTE: This is a candidate for stable release branches.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=53311
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agoi965: Add perf debug for stalls during shader compiles.
Eric Anholt [Tue, 7 Aug 2012 17:05:38 +0000 (10:05 -0700)]
i965: Add perf debug for stalls during shader compiles.

v2: fix bad comment from before I gave up and decided to just use doubles.

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoi965: Add performance debug for when the state cache gets nuked.
Eric Anholt [Thu, 12 Jul 2012 21:05:29 +0000 (14:05 -0700)]
i965: Add performance debug for when the state cache gets nuked.

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>