mesa.git
11 years agoi965: Drop swtnl fallback code for i915.
Eric Anholt [Fri, 21 Jun 2013 16:26:01 +0000 (09:26 -0700)]
i965: Drop swtnl fallback code for i915.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi965: Drop i915 code from intel_screen.
Eric Anholt [Fri, 21 Jun 2013 16:22:39 +0000 (09:22 -0700)]
i965: Drop i915 code from intel_screen.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi965: Drop #ifdef I915 code.
Eric Anholt [Thu, 20 Jun 2013 23:32:20 +0000 (16:32 -0700)]
i965: Drop #ifdef I915 code.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi965: Drop code checking for gen <= 3.
Eric Anholt [Thu, 20 Jun 2013 23:10:43 +0000 (16:10 -0700)]
i965: Drop code checking for gen <= 3.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi915: Remove a duplicated set of PCI IDs.
Eric Anholt [Thu, 20 Jun 2013 23:03:08 +0000 (16:03 -0700)]
i915: Remove a duplicated set of PCI IDs.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi915: Remove various remaining dead code.
Eric Anholt [Thu, 20 Jun 2013 22:47:11 +0000 (15:47 -0700)]
i915: Remove various remaining dead code.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi915: Remove dead debug flags.
Eric Anholt [Thu, 20 Jun 2013 22:58:25 +0000 (15:58 -0700)]
i915: Remove dead debug flags.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi915: Remove state batch emit support.
Eric Anholt [Thu, 20 Jun 2013 22:53:23 +0000 (15:53 -0700)]
i915: Remove state batch emit support.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi915: Drop unused register #defines from the shared reg file.
Eric Anholt [Thu, 20 Jun 2013 22:41:24 +0000 (15:41 -0700)]
i915: Drop unused register #defines from the shared reg file.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi915: Drop 965+ GL version setup.
Eric Anholt [Thu, 20 Jun 2013 22:27:21 +0000 (15:27 -0700)]
i915: Drop 965+ GL version setup.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi915: Remove gen6+ batchbuffer support.
Eric Anholt [Thu, 20 Jun 2013 22:18:05 +0000 (15:18 -0700)]
i915: Remove gen6+ batchbuffer support.

While i915 does have hardware contexts in hardware, we don't expect there
to ever be SW support for it (given that support hasn't even made it back
to gen5 or gen4).

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi915: Drop chipset detection code for 965+ chipsets.
Eric Anholt [Thu, 20 Jun 2013 22:07:18 +0000 (15:07 -0700)]
i915: Drop chipset detection code for 965+ chipsets.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi915: Drop context fields specific to 965+ chipsets.
Eric Anholt [Thu, 20 Jun 2013 22:04:54 +0000 (15:04 -0700)]
i915: Drop context fields specific to 965+ chipsets.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi915: Drop all has_llc code.
Eric Anholt [Thu, 20 Jun 2013 22:03:19 +0000 (15:03 -0700)]
i915: Drop all has_llc code.

i915 never has llc.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi915: Remove the remainder of the batchbuffer caching.
Eric Anholt [Thu, 20 Jun 2013 22:00:44 +0000 (15:00 -0700)]
i915: Remove the remainder of the batchbuffer caching.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi915: Remove miscellanous uncalled gen4 code from formerly shared files.
Eric Anholt [Thu, 20 Jun 2013 19:09:27 +0000 (12:09 -0700)]
i915: Remove miscellanous uncalled gen4 code from formerly shared files.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi915: Remove most of the code under gen >= 4 checks.
Eric Anholt [Thu, 20 Jun 2013 19:08:32 +0000 (12:08 -0700)]
i915: Remove most of the code under gen >= 4 checks.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi915: Remove fake ETC support that only existed on gen4+
Eric Anholt [Thu, 20 Jun 2013 18:58:25 +0000 (11:58 -0700)]
i915: Remove fake ETC support that only existed on gen4+

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi915: Remove separate stencil code.
Eric Anholt [Thu, 20 Jun 2013 18:53:27 +0000 (11:53 -0700)]
i915: Remove separate stencil code.

This was formerly-shared code for supporting gen5+.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi915: Remove the I915 macro from the formerly shared code.
Eric Anholt [Thu, 20 Jun 2013 18:43:48 +0000 (11:43 -0700)]
i915: Remove the I915 macro from the formerly shared code.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi915: Remove all the MSAA support code.
Eric Anholt [Thu, 20 Jun 2013 18:25:58 +0000 (11:25 -0700)]
i915: Remove all the MSAA support code.

This hardware doesn't have MSAA support, so this code is all a waste for it.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi915: Remove all the HiZ code from i915.
Eric Anholt [Thu, 20 Jun 2013 17:04:26 +0000 (10:04 -0700)]
i915: Remove all the HiZ code from i915.

v2: Remove extra struct forward declaration (change by Ken)

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agomesa: GL_EXT_shadow_funcs is not optional with GL_ARB_shadow
Ian Romanick [Fri, 28 Jun 2013 01:20:34 +0000 (18:20 -0700)]
mesa: GL_EXT_shadow_funcs is not optional with GL_ARB_shadow

Every driver left in Mesa that enables one also enables the other.
There's no reason to let it be optional.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
11 years agomesa: GL_ARB_texture_storage_multisample is not optional with GL_ARB_texture_multisample
Ian Romanick [Fri, 28 Jun 2013 01:20:33 +0000 (18:20 -0700)]
mesa: GL_ARB_texture_storage_multisample is not optional with GL_ARB_texture_multisample

In Mesa, this extension is implemented purely in software.  Drivers may
*optionally* provide optimized paths.  If a driver enables,
GL_ARB_texture_multisample, it gets GL_ARB_texture_storage_multisample
for free.

NOTE: This has the side effect of enabling the extension in Gallium
drivers that enable GL_ARB_texture_multisample.

v2 (Ken): Still prevent multisample texture targets in TexParameter for
implementations that don't support multisampling.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
11 years agomesa: GL_ARB_texture_storage is not optional
Ian Romanick [Fri, 28 Jun 2013 01:20:32 +0000 (18:20 -0700)]
mesa: GL_ARB_texture_storage is not optional

In Mesa, this extension is implemented purely in software.  Drivers may
*optionally* provide optimized paths.

NOTE: This has the side effect of enabling the extension in the radeon,
r200, and nouveau drivers.

v2: Minor whitespace tidying (suggested by Brian).

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
11 years agomesa: GL_ARB_shading_language_100 is not optional
Ian Romanick [Fri, 28 Jun 2013 01:20:31 +0000 (18:20 -0700)]
mesa: GL_ARB_shading_language_100 is not optional

This extension just provides some of the most basic software framework
for GLSL.  Without GL_ARB_vertex_shader or GL_ARB_fragment_shader,
applications still cannot use GLSL.  There's no value in
conditionalizing support for this extension.

NOTE: This has the side effect of enabling the extension in the radeon,
r200, and nouveau drivers.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
11 years agomesa: GL_ARB_shader_objects is not optional
Ian Romanick [Fri, 28 Jun 2013 01:20:30 +0000 (18:20 -0700)]
mesa: GL_ARB_shader_objects is not optional

This extension just provides some of the most basic software framework
for GLSL.  Without GL_ARB_vertex_shader or GL_ARB_fragment_shader,
applications still cannot use GLSL.  There's no value in
conditionalizing support for this extension.

NOTE: This has the side effect of enabling the extension in the radeon,
r200, and nouveau drivers.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
11 years agomesa: GL_NV_blend_square is not optional
Ian Romanick [Fri, 28 Jun 2013 01:20:29 +0000 (18:20 -0700)]
mesa: GL_NV_blend_square is not optional

Every driver left in Mesa enables this extension all the time.  There's
no reason to let it be optional.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
11 years agomesa: GL_EXT_fog_coord is not optional
Ian Romanick [Fri, 28 Jun 2013 01:20:28 +0000 (18:20 -0700)]
mesa: GL_EXT_fog_coord is not optional

Every driver left in Mesa enables this extension all the time.  There's
no reason to let it be optional.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
11 years agomesa: GL_EXT_secondary_color is not optional
Ian Romanick [Fri, 28 Jun 2013 01:20:27 +0000 (18:20 -0700)]
mesa: GL_EXT_secondary_color is not optional

Every driver left in Mesa enables this extension all the time.  There's
no reason to let it be optional.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
11 years agomesa: GL_EXT_framebuffer_object is not optional
Ian Romanick [Fri, 28 Jun 2013 01:20:26 +0000 (18:20 -0700)]
mesa: GL_EXT_framebuffer_object is not optional

Every driver left in Mesa enables this extension all the time.  There's
no reason to let it be optional.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
11 years agomesa: Remove GL_MESA_resize_buffers
Ian Romanick [Fri, 28 Jun 2013 01:20:25 +0000 (18:20 -0700)]
mesa: Remove GL_MESA_resize_buffers

Commit bab755a made the implementation a no-op, and it was only ever
enabled by software rasterizers.

v2: Move the spec into docs/specs/OLD since it's now obsolete
    (squashed patch from Andreas Boll)

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
11 years agomesa: Remove _mesa_{enable, disable}_extension and _mesa_extension_is_enabled
Ian Romanick [Fri, 28 Jun 2013 01:20:24 +0000 (18:20 -0700)]
mesa: Remove _mesa_{enable, disable}_extension and _mesa_extension_is_enabled

They're not used anywhere.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
11 years agomesa: Just set extension flags instead of calling _mesa_enable_extension
Ian Romanick [Fri, 28 Jun 2013 01:20:23 +0000 (18:20 -0700)]
mesa: Just set extension flags instead of calling _mesa_enable_extension

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
11 years agomesa: Remove _mesa_enable_._._extensions functions
Ian Romanick [Fri, 28 Jun 2013 01:20:22 +0000 (18:20 -0700)]
mesa: Remove _mesa_enable_._._extensions functions

After the preceeding commits, they are not used.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
11 years agoswrast: Don't call _mesa_enable_._._extensions and _mesa_enable_sw_extensions
Ian Romanick [Fri, 28 Jun 2013 01:20:21 +0000 (18:20 -0700)]
swrast: Don't call _mesa_enable_._._extensions and _mesa_enable_sw_extensions

_mesa_enable_sw_extensions enables all the extensions (and more) that
the others enable.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
11 years agoosmesa: Don't call _mesa_enable_._._extensions and _mesa_enable_sw_extensions
Ian Romanick [Fri, 28 Jun 2013 01:20:20 +0000 (18:20 -0700)]
osmesa: Don't call _mesa_enable_._._extensions and _mesa_enable_sw_extensions

_mesa_enable_sw_extensions enables all the extensions (and more) that
the others enable.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
11 years agowmesa: Don't call _mesa_enable_._._extensions and _mesa_enable_sw_extensions
Ian Romanick [Fri, 28 Jun 2013 01:20:19 +0000 (18:20 -0700)]
wmesa: Don't call _mesa_enable_._._extensions and _mesa_enable_sw_extensions

_mesa_enable_sw_extensions enables all the extensions (and more) that
the others enable.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
11 years agox11: Don't call _mesa_enable_._._extensions and _mesa_enable_sw_extensions
Ian Romanick [Fri, 28 Jun 2013 01:20:18 +0000 (18:20 -0700)]
x11: Don't call _mesa_enable_._._extensions and _mesa_enable_sw_extensions

_mesa_enable_sw_extensions enables all the extensions (and more) that
the others enable.  Also, don't duplicate the DXTn checks.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
11 years agoi965: Merge the two GEN >= 6 extension enable blocks
Ian Romanick [Fri, 28 Jun 2013 01:20:17 +0000 (18:20 -0700)]
i965: Merge the two GEN >= 6 extension enable blocks

There's no reason for these blocks to be separate.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi965: Move GEN >= 4 extensions into the "always on" list
Ian Romanick [Fri, 28 Jun 2013 01:20:16 +0000 (18:20 -0700)]
i965: Move GEN >= 4 extensions into the "always on" list

This copy of the source file is only used for GEN >= 4, so extensions
that are enabled for GEN >= 4 are always enabled.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi965: Move GEN >= 3 extensions into the "always on" list
Ian Romanick [Fri, 28 Jun 2013 01:20:15 +0000 (18:20 -0700)]
i965: Move GEN >= 3 extensions into the "always on" list

This copy of the source file is only used for GEN >= 4, so extensions
that are enabled for GEN >= 3 are always enabled.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi915: Remove GEN >= 4 extension support
Ian Romanick [Fri, 28 Jun 2013 01:20:14 +0000 (18:20 -0700)]
i915: Remove GEN >= 4 extension support

This copy of the source file is only used for GEN <= 3, so remove the
dead code.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi965: Split surface format code into a new file (brw_surface_formats.c).
Kenneth Graunke [Wed, 26 Jun 2013 18:58:38 +0000 (11:58 -0700)]
i965: Split surface format code into a new file (brw_surface_formats.c).

brw_wm_surface_state.c has gotten rather large and unwieldy.  At this
point, it consists of two separate portions:

1. Surface format code

   This includes the giant table of surface formats and what features
   they support on each generation, as well as the code to translate
   between Mesa formats and hardware formats.

   This is used across all generations.

2. Binding table (SURFACE_STATE) related code.

   This is the code to generate SURFACE_STATE entries for renderbuffers,
   textures, transform feedback buffers, constant buffers, and so on, as
   well as the code to assemble them into binding tables.

   This is only used on Gen4-6; gen7_surface_state.c has Gen7+ code.

Since the two are logically separate, and one is reused on every
generation while the other is not, it makes a lot of sense to split
them out.  It should also make finding code easier.

No code is changed by this patch.  I simply copied the file then deleted
portions of both.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
11 years agoradeonsi: add kabini pci ids
Alex Deucher [Fri, 25 Jan 2013 00:46:05 +0000 (19:46 -0500)]
radeonsi: add kabini pci ids

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
11 years agoradeonsi: add bonaire pci ids
Alex Deucher [Fri, 7 Jun 2013 18:09:20 +0000 (14:09 -0400)]
radeonsi: add bonaire pci ids

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
11 years agoradeonsi: disable 2D tiling on CIK for now
Alex Deucher [Fri, 3 May 2013 21:12:04 +0000 (17:12 -0400)]
radeonsi: disable 2D tiling on CIK for now

Causes GPU hangs.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
11 years agoradeonsi: add llvm processor names for CIK
Alex Deucher [Fri, 7 Jun 2013 18:08:25 +0000 (14:08 -0400)]
radeonsi: add llvm processor names for CIK

Requires updated llvm.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
11 years agoradeonsi: emit PA_SC_RASTER_CONFIG[_1] on cik
Alex Deucher [Fri, 7 Jun 2013 18:07:10 +0000 (14:07 -0400)]
radeonsi: emit PA_SC_RASTER_CONFIG[_1] on cik

Use the golden values for each asic.

Todo: update Kabini and Kaveri.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
11 years agoradeonsi: PA_CL_ENHANCE is privileged on CIK
Alex Deucher [Fri, 16 Nov 2012 04:05:59 +0000 (23:05 -0500)]
radeonsi: PA_CL_ENHANCE is privileged on CIK

Needs to be and is set by the kernel.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
11 years agoradeonsi: update surface sync packet emit for CIK
Alex Deucher [Mon, 1 Oct 2012 20:37:54 +0000 (16:37 -0400)]
radeonsi: update surface sync packet emit for CIK

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
11 years agoradeonsi: store chip class in the pm4 struct
Alex Deucher [Fri, 7 Jun 2013 18:04:58 +0000 (14:04 -0400)]
radeonsi: store chip class in the pm4 struct

Will be used for asic specific pm4 behavior.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
11 years agoradeonsi: properly handle DB tiling setup on CIK
Alex Deucher [Thu, 2 May 2013 16:28:38 +0000 (12:28 -0400)]
radeonsi: properly handle DB tiling setup on CIK

On CIK, DB switches back to using per-surface tiling
parameters rather than the tile index used on SI.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
11 years agoradeonsi: emit additional shader pgm rsrc registers for CIK
Alex Deucher [Fri, 28 Sep 2012 22:31:16 +0000 (18:31 -0400)]
radeonsi: emit additional shader pgm rsrc registers for CIK

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
11 years agoradeonsi: emit TA_BC_BASE_ADDR_HI for border color on CIK
Alex Deucher [Fri, 9 Nov 2012 00:00:59 +0000 (19:00 -0500)]
radeonsi: emit TA_BC_BASE_ADDR_HI for border color on CIK

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
11 years agoradeonsi: fix VGT_PRIMITIVE_TYPE emit for CIK
Alex Deucher [Fri, 28 Sep 2012 21:35:26 +0000 (17:35 -0400)]
radeonsi: fix VGT_PRIMITIVE_TYPE emit for CIK

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
11 years agoradeonsi: register updates for CIK
Alex Deucher [Thu, 15 Nov 2012 16:07:07 +0000 (11:07 -0500)]
radeonsi: register updates for CIK

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
11 years agoradeonsi: initial PM4 changes for CIK
Alex Deucher [Thu, 8 Nov 2012 23:59:46 +0000 (18:59 -0500)]
radeonsi: initial PM4 changes for CIK

note which packets are removed and add new ones.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
11 years agoradeonsi: initial support for CIK chips
Alex Deucher [Fri, 7 Jun 2013 18:00:11 +0000 (14:00 -0400)]
radeonsi: initial support for CIK chips

Add the infrastructure to differentiate them.
Just treat them like SI for now.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
11 years agoradeonsi: rename SI chip class from TAHITI to SI
Alex Deucher [Fri, 7 Jun 2013 17:58:34 +0000 (13:58 -0400)]
radeonsi: rename SI chip class from TAHITI to SI

Covers the entire family.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
11 years agor600g: Fix build
Tom Stellard [Fri, 28 Jun 2013 18:08:07 +0000 (11:08 -0700)]
r600g: Fix build

Broken since 2840bec56f79347b95dec5458b20d4a46d1aa445 when opencl is
disabled.

11 years agomesa: Return ZeroVec/dummyReg instead of NULL pointer
Anuj Phogat [Thu, 27 Jun 2013 23:12:07 +0000 (16:12 -0700)]
mesa: Return ZeroVec/dummyReg instead of NULL pointer

Assertions are not sufficient to check for null pointers as they don't
show up in release builds. So, return ZeroVec/dummyReg instead of NULL
pointer in get_{src,dst}_register_pointer(). This should calm down the
warnings from static analysis tool.

Note: This is a candidate for the 9.1 branch.
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
11 years agomesa: Fix build with older gcc since update of glext.h
Tom Stellard [Thu, 27 Jun 2013 15:27:30 +0000 (08:27 -0700)]
mesa: Fix build with older gcc since update of glext.h

Reviewed-by: Brian Paul <brianp@vmware.com>
11 years agor600g/compute: Accept LDS size from the LLVM backend
Tom Stellard [Wed, 12 Jun 2013 21:38:59 +0000 (14:38 -0700)]
r600g/compute: Accept LDS size from the LLVM backend

And allocate the correct amount before dispatching the kernel.

Tested-by: Aaron Watry <awatry@gmail.com>
11 years agor600g/compute: Move compute_shader_create() function into evergreen_compute.c
Tom Stellard [Wed, 12 Jun 2013 19:36:08 +0000 (12:36 -0700)]
r600g/compute: Move compute_shader_create() function into evergreen_compute.c

Tested-by: Aaron Watry <awatry@gmail.com>
11 years agosvga: pass svga_compile_key by reference instead of value
Brian Paul [Fri, 28 Jun 2013 14:09:48 +0000 (08:09 -0600)]
svga: pass svga_compile_key by reference instead of value

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
11 years agosvga: use switch statement in svga_shader_type()
Brian Paul [Fri, 28 Jun 2013 14:08:38 +0000 (08:08 -0600)]
svga: use switch statement in svga_shader_type()

Safer in case the PIPE_SHADER_x tokens get renumbered (as Marek
wanted to do).

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
11 years agoilo: clean up states that use ilo_view_surface
Chia-I Wu [Fri, 28 Jun 2013 06:44:47 +0000 (14:44 +0800)]
ilo: clean up states that use ilo_view_surface

Use variables that are easier to remember what they are.

11 years agoilo: remove ilo_cbuf_state::count
Chia-I Wu [Fri, 28 Jun 2013 05:59:18 +0000 (13:59 +0800)]
ilo: remove ilo_cbuf_state::count

We can derive it from enabled_mask.

11 years agoilo: clean up ilo_set_constant_buffer()
Chia-I Wu [Fri, 28 Jun 2013 05:56:36 +0000 (13:56 +0800)]
ilo: clean up ilo_set_constant_buffer()

Add loops that will be optimized away.

11 years agoilo: clean up states that take a start_slot
Chia-I Wu [Fri, 28 Jun 2013 06:13:04 +0000 (14:13 +0800)]
ilo: clean up states that take a start_slot

They are similar, so clean them up to make them look similar.

11 years agoglsl: Initialize member variable is_ubo_var in constructor.
Vinson Lee [Sat, 8 Jun 2013 20:46:54 +0000 (13:46 -0700)]
glsl: Initialize member variable is_ubo_var in constructor.

Fixes "Uninitialized scalar field" defect reported by Coverity.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
11 years agoilo: use shorter names for dirty flags
Chia-I Wu [Thu, 27 Jun 2013 07:17:08 +0000 (15:17 +0800)]
ilo: use shorter names for dirty flags

The new names match those of ilo_context's members respectively, and are
shorter.

11 years agoilo: track if primitive restart has changed
Chia-I Wu [Thu, 27 Jun 2013 10:19:16 +0000 (18:19 +0800)]
ilo: track if primitive restart has changed

Re-emit 3DSTATE_INDEX_BUFFER to enable/disable primitive restart.

11 years agoilo: avoid potential dangling pointer dereference
Chia-I Wu [Thu, 27 Jun 2013 06:52:54 +0000 (14:52 +0800)]
ilo: avoid potential dangling pointer dereference

Set pipe_draw_info to NULL after draw_vbo().

11 years agomesa: Remove GL_EXT_clip_volume_hint
Ian Romanick [Thu, 27 Jun 2013 18:23:33 +0000 (11:23 -0700)]
mesa: Remove GL_EXT_clip_volume_hint

As far as I can tell, no driver has enabled this extension since c6499a7
back in 2007.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agoi965,i915: Return early if miptree allocation fails
Chad Versace [Wed, 26 Jun 2013 20:53:15 +0000 (13:53 -0700)]
i965,i915: Return early if miptree allocation fails

If allocation fails in intel_miptree_create_layout(), don't proceed to
dereference the miptree. Return an early NULL.

Fixes static analysis error reported by Klocwork.

Note: This is a candidate for the 9.1 branch.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
11 years agollvmpipe: handle offset_clamp
Roland Scheidegger [Thu, 27 Jun 2013 17:01:11 +0000 (19:01 +0200)]
llvmpipe: handle offset_clamp

This was just ignored (unless for some reason like unfilled polys draw was
handling this).
I'm not convinced of that code, putting the float for the clamp in the key
isn't really a good idea. Then again the other floats for depth bias are
already in there too anyway (should probably have a jit_context for the
setup function), so this is just a quick fix.
Also, the "minimum resolvable depth difference" used isn't really right as it
should be calculated according to the z values of the current primitive
and not be a constant (of course, this only makes a difference for float
depth buffers), at least for d3d10, so depth biasing is still not quite right.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
11 years agollvmpipe: remove never reached code for timestamp queries.
Roland Scheidegger [Thu, 27 Jun 2013 16:56:26 +0000 (18:56 +0200)]
llvmpipe: remove never reached code for timestamp queries.

timestamp queries are always binned in an active scene, therefore
always have a result.

11 years agollvmpipe: fix a bug in opaque optimization
Roland Scheidegger [Thu, 27 Jun 2013 16:54:10 +0000 (18:54 +0200)]
llvmpipe: fix a bug in opaque optimization

If there are queries active the opaque optimization reseting the bin needs to
be disabled.
(Not really tested since the bug was discovered by code inspection not
an actual test failure.)

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
11 years agoradeonsi/compute: Fix memory leak in radeonsi_launch_grid.
Vinson Lee [Wed, 26 Jun 2013 04:37:07 +0000 (21:37 -0700)]
radeonsi/compute: Fix memory leak in radeonsi_launch_grid.

Fixes "Resource leak" defect reported by Coverity.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
11 years agoclover: Fix build with LLVM 3.4
Tom Stellard [Thu, 27 Jun 2013 16:41:34 +0000 (09:41 -0700)]
clover: Fix build with LLVM 3.4

Reported on IRC by lordheavy

11 years agodocs: updated instructions for Mesa on Windows
Bill York [Wed, 19 Jun 2013 16:18:00 +0000 (10:18 -0600)]
docs: updated instructions for Mesa on Windows

Signed-off-by: Brian Paul <brianp@vmware.com>
11 years agopostprocess: handle partial intialization failures.
Matthew McClure [Fri, 21 Jun 2013 20:45:55 +0000 (13:45 -0700)]
postprocess: handle partial intialization failures.

This patch fixes segfaults observed when enabling the post processing
features. When the format is not supported, or a texture cannot be
created, the code must gracefully handle failure and report the error to
the calling code for proper failure handling.

To accomplish this the following changes were made to the filters.h
prototypes:

- bool return for pp_init_func
- Added pp_free_func for filter specific resource destruction

Fixes segfaults from backtraces:

* util_destroy_blit
  pp_free

* u_transfer_inline_write_vtbl
  pp_jimenezmlaa_init_run
  pp_init

This patch also uses tgsi_alloc_tokens to allocate temporary tokens in
pp_tgsi_to_state, instead of allocating the array on the stack. This
fixes the following stack corruption segfault in pp_run.c:

* _int_free
  aaline_delete_fs_state
  pp_free

Bug Number: 1021843
Reviewed-by: Brian Paul <brianp@vmware.com>
11 years agoglx: return True/False instead of GL_TRUE/GL_FALSE
Brian Paul [Wed, 26 Jun 2013 19:42:51 +0000 (13:42 -0600)]
glx: return True/False instead of GL_TRUE/GL_FALSE

Just to be consistent with the functions' Bool return type.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
11 years agoglx: move declarations before code
Brian Paul [Wed, 26 Jun 2013 19:38:18 +0000 (13:38 -0600)]
glx: move declarations before code

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
11 years agomesa: move declarations before code
Brian Paul [Wed, 26 Jun 2013 19:36:38 +0000 (13:36 -0600)]
mesa: move declarations before code

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
11 years agoglsl: Use the C99 variadic macro syntax.
José Fonseca [Thu, 27 Jun 2013 06:41:36 +0000 (07:41 +0100)]
glsl: Use the C99 variadic macro syntax.

MSVC does not support the old GCC syntax.

See also
http://gcc.gnu.org/onlinedocs/gcc/Variadic-Macros.html

11 years agoscons: Add dependencies to all .xml files.
José Fonseca [Thu, 27 Jun 2013 06:25:10 +0000 (07:25 +0100)]
scons: Add dependencies to all .xml files.

Should prevent stuck builds when only some of the included .xml files
change.

11 years agoilo: plug a potential index buffer leak
Chia-I Wu [Thu, 27 Jun 2013 03:44:27 +0000 (11:44 +0800)]
ilo: plug a potential index buffer leak

This is harmless since st_context and u_vbuf both set index buffer to NULL
before destroying themselves.  But we do not want to rely on that behavior.

11 years agosoftpipe: honor predication for clear_render_target and clear_depth_stencil
Roland Scheidegger [Wed, 26 Jun 2013 21:15:15 +0000 (23:15 +0200)]
softpipe: honor predication for clear_render_target and clear_depth_stencil

trivial, copied from llvmpipe

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
11 years agollvmpipe: add support for nested / overlapping queries
Roland Scheidegger [Wed, 26 Jun 2013 21:11:03 +0000 (23:11 +0200)]
llvmpipe: add support for nested / overlapping queries

OpenGL doesn't support this but d3d10 does.
It is a bit of a pain as it is necessary to keep track of queries
still active at the end of a scene, which is also why I cheat a bit
and limit the amount of simultaneously active queries to (arbitrary)
16 (simplifies things because don't have to deal with a real list
that way). I can't think of a reason why you'd really want large
numbers of overlapping/nested queries so it is hopefully fine.
(This only affects queries which need to be binned.)

v2: don't copy remainder of array when deleting an entry simply replace
the deleted entry with the last one (order doesn't matter).

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
11 years agollvmpipe: rework query logic
Roland Scheidegger [Tue, 25 Jun 2013 21:27:04 +0000 (23:27 +0200)]
llvmpipe: rework query logic

Previously lp_rast_begin_query commands were always inserted into each bin,
and re-issued if the scene was restarted, while lp_rast_end_query commands
were executed for each still active query at the end of tile rasterization.
Also, the ps_invocations and vis_counter were set to zero when the respective
command was encountered.
This however cannot work for multiple queries of the same type (note that
occlusion counter and occlusion predicate while different type were also
affected).
So, change the logic to always set the ps_invocations and vis_counter to zero
at the start of tile rasterization, and then use "start" and "end" per-thread
query values when encountering the begin/end query commands instead, which
should work for multiple queries of the same type. This also means queries do
not have to be reissued in a new scene, however they still need to be finished
at end of tile rasterization, so a list of queries still active at the end of
a scene needs to be maintained.
Also while here don't bin the queries which don't do anything in rasterization.
(This change does not actually handle multiple queries of the same type yet,
as the list of active queries is just a simple fixed array and setup can still
only have one query active per type.)

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
11 years agoi965: Move the remaining intel code to the i965 directory.
Eric Anholt [Thu, 20 Jun 2013 23:07:07 +0000 (16:07 -0700)]
i965: Move the remaining intel code to the i965 directory.

Now that i915's forked off, they don't need to live in a shared directory.

Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Acked-by: Chad Versace <chad.versace@linux.intel.com>
Acked-by: Adam Jackson <ajax@redhat.com>
(and I hear second hand that idr is OK with it, too)

11 years agoi915: Fork the shared code from i965.
Eric Anholt [Thu, 20 Jun 2013 17:00:18 +0000 (10:00 -0700)]
i915: Fork the shared code from i965.

Of this 15000 lines of code in intel/, we've identified 4000 lines that
are trivially unnecessary for i915, and another 1000 that are pointless for
i965, and expect to find more as time goes on.  Split the i915 driver off,
so that we can continue active development on i965 without worrying about
breaking i915.

Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Acked-by: Chad Versace <chad.versace@linux.intel.com>
Acked-by: Adam Jackson <ajax@redhat.com>
(and I hear second hand that idr is OK with it, too)

11 years agoi915: Remove dead symlink.
Eric Anholt [Thu, 20 Jun 2013 16:59:44 +0000 (09:59 -0700)]
i915: Remove dead symlink.

11 years agoglx: Fix another missed glMultiDrawElementsEXT const change.
Eric Anholt [Wed, 26 Jun 2013 19:24:08 +0000 (12:24 -0700)]
glx: Fix another missed glMultiDrawElementsEXT const change.

The build was broken for me since
b7d9478f36bde0f7b27321378c1bb799fdd4eaa1.

11 years agoglsl: Move all var decls to the front of the IR list in reverse order
Ian Romanick [Sat, 8 Jun 2013 00:05:22 +0000 (17:05 -0700)]
glsl: Move all var decls to the front of the IR list in reverse order

This has the (intended!) side effect that vertex shader inputs and
fragment shader outputs will appear in the IR in the same order that
they appeared in the shader code.  This results in the locations being
assigned in the declared order.  Many (arguably buggy) applications
depend on this behavior, and it matches what nearly all other drivers
do.

Fixes the (new) piglit test attrib-assignments.

NOTE: This is a candidate for stable release branches (and requires the
previous commit to prevent a regression in OpenGL ES 2.0 conformance
test stencil_plane_operation).

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
11 years agoi965: Be more careful with the interleaved user array upload optimization
Ian Romanick [Thu, 20 Jun 2013 12:43:32 +0000 (05:43 -0700)]
i965: Be more careful with the interleaved user array upload optimization

The checks to determine when the data can be uploaded in an interleaved
fashion can be tricked by certain data layouts.  For example,

    float data[...];

    glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, 16, &data[0]);
    glVertexAttribPointer(1, 4, GL_FLOAT, GL_FALSE, 16, &data[4]);
    glDrawArrays(GL_POINTS, 0, 1);

will hit the interleaved path with an incorrect size (16 bytes instead
of 32 bytes).  As a result, the data for attribute 1 never gets
uploaded.  The single element draw case is the only sensible case I can
think of for non-interleaved-that-looks-like-interleaved data, but there
may be others as well.

To fix this, make sure that the end of the element in the array being
checked is within the stride "window."  Previously the code would check
that the begining of the element was within the window.

NOTE: This is a candidate for stable branches.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
11 years agomesa: add const qualifier to glMultiDrawElementsEXT() indices param
Brian Paul [Wed, 26 Jun 2013 17:10:48 +0000 (11:10 -0600)]
mesa: add const qualifier to glMultiDrawElementsEXT() indices param

The 20130624 version of glext.h changed this to match the
glMultiDrawElements() function which already had the extra const
qualifier.

Fixes warnings/errors that seem to vary from one compiler to the next.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>