summaryrefslogtreecommitdiffstats
path: root/src/mesa
Commit message (Collapse)AuthorAgeFilesLines
* mesa: implement new DrawTransformFeedback functionsMarek Olšák2012-07-125-12/+130
| | | | Acked-by: Ian Romanick <[email protected]>
* mesa: implement display list support for new DrawTransformFeedback functionsMarek Olšák2012-07-122-0/+85
| | | | Acked-by: Ian Romanick <[email protected]>
* mesa: implement display list support for indexed query functionsMarek Olšák2012-07-121-2/+47
| | | | Acked-by: Ian Romanick <[email protected]>
* mesa: implement indexed query functions from ARB_transform_feedback3Marek Olšák2012-07-121-15/+67
| | | | Acked-by: Ian Romanick <[email protected]>
* mesa: implement glGet queries and error handling for ARB_transform_feedback3Marek Olšák2012-07-124-0/+43
| | | | Acked-by: Ian Romanick <[email protected]>
* glsl: implement ARB_transform_feedback3 in the linkerMarek Olšák2012-07-122-0/+2
| | | | Acked-by: Ian Romanick <[email protected]>
* st/mesa: implement accelerated stencil blitting using shader stencil exportMarek Olšák2012-07-124-12/+41
| | | | Reviewed-by: Alex Deucher <[email protected]>
* st/mesa: set colormask to zero when blitting depthMarek Olšák2012-07-121-2/+2
| | | | Reviewed-by: Alex Deucher <[email protected]>
* gallium/u_blit: drop not-very-useful wrapper around util_blit_pixels_writemaskMarek Olšák2012-07-122-15/+15
| | | | | | just rename it to util_blit_pixels Reviewed-by: Alex Deucher <[email protected]>
* gallium: add util_format_stencil_only helper functionMarek Olšák2012-07-121-21/+2
| | | | | | used for stencil sampler views. Reviewed-by: Alex Deucher <[email protected]>
* mesa: remove assertions that do not allow compressed 2D_ARRAY texturesMarek Olšák2012-07-121-4/+2
| | | | | | NOTE: This is a candidate for the 8.0 branch. Reviewed-by: Alex Deucher <[email protected]>
* i965/msaa: Enable CMS layout on Gen7 for the formats that support it.Paul Berry2012-07-111-1/+18
| | | | Reviewed-by: Chad Versace <[email protected]>
* i965/msaa: Add CMS support to blorp.Paul Berry2012-07-111-2/+43
| | | | | | | | | | | | | | | | | | This patch updates the blorp engine to properly handle the case where the surface being textured from uses Gen7's CMS MSAA layout. The following changes were necessary: - Before reading color values from the surface, we need to read from the MCS buffer using the ld_mcs sampler message. This is done by the mcs_fetch() function, and the result is stored in the mcs_data register. This only needs to be done once per pixel, since the MCS value is shared between all samples belonging to a pixel. - When reading color values from the surface, we need to use the ld2dms sampler message instead of the ld2dss message, and we need to provide the value read from the MCS buffer as an argument. Reviewed-by: Chad Versace <[email protected]>
* i965/msaa: Add CMS-related sampler messages to brw_defines.h.Paul Berry2012-07-111-0/+2
| | | | Reviewed-by: Chad Versace <[email protected]>
* i965/msaa: Set SURFACE_STATE properly when CMS MSAA is in use.Paul Berry2012-07-113-0/+54
| | | | | | | | | When a buffer using Gen7's CMS MSAA layout is bound to a texture or a render target, the SURFACE_STATE structure needs to point to the MCS buffer and to indicate its pitch. This patch updates the functions that emit SURFACE_STATE to handle CMS layout properly. Reviewed-by: Chad Versace <[email protected]>
* i965/msaa: Add CMS MSAA settings to brw_structs.h.Paul Berry2012-07-111-2/+20
| | | | | | | Previously the DWORD used to control the CMS MSAA layout was just a pad value, because we didn't use it. Reviewed-by: Chad Versace <[email protected]>
* i965/msaa: Allocate MCS buffer when CMS MSAA is in use.Paul Berry2012-07-113-0/+69
| | | | | | | | | | | To implement Gen7's CMS MSAA layout, we need an extra buffer, the MCS (Multisample Control Surface) buffer. This patch introduces code for allocating and deallocating the buffer, and storing a pointer to it in the intel_mipmap_tree struct. No functional change, since the CMS layout is not enabled yet. Reviewed-by: Chad Versace <[email protected]>
* i965/msaa: Add an enum to describe MSAA layout.Paul Berry2012-07-1110-130/+229
| | | | | | | | | | | | | | | | | | | | | | | | From the Ivy Bridge PRM, Vol 1 Part 1, p112: There are three types of multisampled surface layouts designated as follows: - IMS Interleaved Multisampled Surface - CMS Compressed Mulitsampled Surface - UMS Uncompressed Multisampled Surface Previously, the i965 driver only used IMS and UMS formats, and distinguished beetween them using the boolean intel_mipmap_tree::msaa_is_interleaved. To facilitate adding support for the CMS format, this patch replaces that boolean (and other booleans derived from it) with an enum INTEL_MSAA_LAYOUT_{IMS,CMS,UMS}. It also updates the terminology used in comments throughout the driver to match the IMS/CMS/UMS terminology used in the PRM. CMS layout is not yet used. The enum has a fourth possible value, INTEL_MSAA_LAYOUT_NONE, which is used for non-multisampled surfaces. Reviewed-by: Chad Versace <[email protected]>
* i965/msaa: Move {rt,tex}_interleaved into blorp program key.Paul Berry2012-07-112-16/+30
| | | | | | | | | | | | | | | | On Gen6, MSAA buffers always use an interleaved layout and non-MSAA buffers always use a non-interleaved layout, so it is not strictly necessary to keep track of the layout of the texture and render target surfaces in the blorp program key. However, it is cleaner to do so, since (a) it makes the blorp compiler less dependent on implicit knowledge about how the GPU pipeline is configured, and (b) it paves the way for implementing compressed multisampled surfaces in Gen7. This patch won't cause any redundant compiles, because the layout of the texture and render target surfaces depends on other parameters that are already in the blorp program key. Reviewed-by: Chad Versace <[email protected]>
* intel: Implement __DRIimage::createSubImage and bump supported version to 5Kristian Høgsberg2012-07-113-3/+50
| | | | | | | We use the new miptree offset to pick out the sub-image when we bind the EGLImage to a texture. Signed-off-by: Kristian Høgsberg <[email protected]>
* intel: Add offset field to miptreeKristian Høgsberg2012-07-116-8/+18
| | | | | | | | This lets us specify an offset into the bo where the miptree starts, which will let us set up a texture for a single plane in a planar buffer. Signed-off-by: Kristian Høgsberg <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* intel: Add support for new __DRIimage formatsKristian Høgsberg2012-07-111-0/+15
|
* i965: Revert the VBOs-in-system-memory hack.Eric Anholt2012-07-111-8/+5
| | | | | | | | It didn't change performance on Lightsmark or Nexuiz, which both used DYNAMIC_DRAW buffers, but it was killing performance (40% CPU wasted pwriting buffers) on a closed-source app we're looking at. Reviewed-by: Kenneth Graunke <[email protected]>
* dri2: Hard-code the DRI2 versionIan Romanick2012-07-111-1/+1
| | | | | | | | This allows revising the dri_interface.h separately from adding driver support. Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: Remove unneeded extern qualifiersChad Versace2012-07-101-2/+2
| | | | | | | Remove 'extern' from the functions declared in texcompress_etc.h. Reviewed-by: Kenneth Graunke <[email protected]> Signed-off-by: Chad Versace <[email protected]>
* i965: Add hardware context support.Kenneth Graunke2012-07-104-6/+21
| | | | | | | | | | | With fixes and updates from Ben Widawsky and comments from Paul Berry. v2: Use drm_intel_gem_context_destroy to destroy hardware context; remove useless initialization of hw_ctx, both suggested by Eric. Signed-off-by: Kenneth Graunke <[email protected]> Signed-off-by: Ben Widawsky <[email protected]> Acked-by: Paul Berry <[email protected]>
* mesa/test: Update name of GL_TIME_ELAPSEDIan Romanick2012-07-101-1/+1
| | | | | | | | 4952caa caused the _EXT to fall off the name of this enum. This is fine. Update the unit test to expect the new value. Signed-off-by: Ian Romanick <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=51956
* st/mesa: implement ARB_timer_queryMarek Olšák2012-07-102-0/+19
|
* mesa: implement glGet(GL_TIMESTAMP) v2Marek Olšák2012-07-102-1/+20
| | | | | | This is adds a new driver function to retrieve the timestamp. Reviewed-by: Eric Anholt <[email protected]>
* mesa: add ARB_timer_query to the extension listMarek Olšák2012-07-101-0/+1
| | | | Reviewed-by: Brian Paul <[email protected]>
* mesa: add QueryCounter display list supportMarek Olšák2012-07-101-0/+24
| | | | Reviewed-by: Brian Paul <[email protected]>
* mesa: implement TIMESTAMP query and glQueryCounterMarek Olšák2012-07-101-6/+72
| | | | Reviewed-by: Brian Paul <[email protected]>
* i965/fs: Invalidate live intervals after copy propagation.Eric Anholt2012-07-061-0/+3
| | | | | | | | For copy propgation, we've dropped the use of a GRF in favor of a (probably later) use of a different GRF. This definitely requires invalidating intervals. Reviewed-by: Kenneth Graunke <[email protected]>
* i965/fs: Invalidate live intervals in passes that remove an instruction.Eric Anholt2012-07-061-0/+6
| | | | | | | | | Since live intervals are based on ip, removing an instruction trashes the intervals unless we were to go do some surgery. These happen to usually remove a use of a grf, so it's time to recalculate, anyway. Reviewed-by: Kenneth Graunke <[email protected]> NOTE: This is a candidate for the 8.0 release branch.
* i965/vs: Move the other two src_reg/dst_reg constructors to brw_vec4.cpp.Eric Anholt2012-07-062-43/+43
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* i965/vs: Move class functions to brw_vec4.cpp.Eric Anholt2012-07-062-106/+126
| | | | | | | This has less impact than for the FS (4k savings), because it was partially done already, but makes things more consistent. Reviewed-by: Kenneth Graunke <[email protected]>
* i965/fs: Move class functions from the header to .cpp files.Eric Anholt2012-07-063-278/+326
| | | | | | | Cuts compile time for brw_fs.h changes from 2.7s to .7s and reduces i965_dri.so size by 70k. Reviewed-by: Kenneth Graunke <[email protected]>
* st/mesa: only expose ARB_shader_bit_encoding with GLSL 1.3Marek Olšák2012-07-061-4/+1
| | | | | | I don't think it's possible or even useful to use the extension with GLSL 1.2. Reviewed-by: Brian Paul <[email protected]>
* intel: Share common __DRIimage allocation codeKristian Høgsberg2012-07-051-40/+19
| | | | | | | We have the same switch and allocation code in two places. Signed-off-by: Kristian Høgsberg <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* intel: Just look up image->internal_format using _mesa_get_format_base_formatKristian Høgsberg2012-07-051-10/+2
| | | | | Signed-off-by: Kristian Høgsberg <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* intel: Remove unused __DRIimage::data_type fieldKristian Høgsberg2012-07-052-13/+0
| | | | | Signed-off-by: Kristian Høgsberg <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* Revert "mesa: #define fprintf to be __mingw_fprintf() on Mingw32"Brian Paul2012-07-051-10/+0
| | | | | | | | | This reverts commit cbffaf20e9e6154310ba68bb2b44adc37ba83bcd. Use the PRIx64 macro in the fprintf() call instead, as suggested by Dylan Noblesmith. Reviewed-by: José Fonseca <[email protected]>
* mesa: use the PRIx64 macro for printing 64-bit hexadecimal valuesBrian Paul2012-07-051-5/+6
| | | | | | We'll revert the #define fprintf __mingw_fprintf change next. Reviewed-by: José Fonseca <[email protected]>
* intel: Fix a comment typo.Eric Anholt2012-07-041-1/+1
|
* mesa: add GL_EXT_texture_rg extension for OpenGL ES 2.x.Gwenole Beauchesne2012-07-042-0/+2
|
* mesa/st: gl_ClipDistance must be interpolated in 3d space.Olivier Galibert2012-07-041-2/+2
| | | | | | | | | | | That old bug was hidden but the clipper always interpolating in 3d space no matter what it should have been doing. Now that the interpolation has been fixed, the bug shows up. Fixes fdo 51364. Signed-off-by: Olivier Galibert <[email protected]> Signed-off-by: José Fonseca <[email protected]>
* Revert "mesa: add GL_EXT_texture_rg extension for OpenGL ES 2.x."Marek Olšák2012-07-042-2/+0
| | | | This reverts commit d1665388ce53d23ee7853e5083ce6f7192061109.
* mesa: add GL_EXT_texture_rg extension for OpenGL ES 2.x.Gwenole Beauchesne2012-07-032-0/+2
|
* i965/fs: Allow copy propagation on uniforms.Eric Anholt2012-07-031-4/+7
| | | | | | | | | | | | | | | | | | This is a big win for savage2, hon and yofrankie. 62 new programs for savage2/hon get 16-wide mode, along with one for humus demos and two for tropics. Even a few shaders from tropics see reductions of 15% or more. total instructions in shared programs: 216536 -> 207353 (-4.24%) instructions in affected programs: 123941 -> 114758 (-7.41%) In benchmarking Tropics, only a .040% +/- 034% performance improvement was observed (n=90). Rather disappointing, but I was primarily motivated to do this patch by a regression in the number of 16-wide shaders compiled after a GRF texturing on IVB patch I'm working on. Hopefully this helps avoid that regression. Reviewed-by: Kenneth Graunke <[email protected]>
* i965/fs: Allow copy propagation with source modifiers.Eric Anholt2012-07-031-3/+17
| | | | | | | | | | | | | This shaves a few instructions off of a ton of programs. For 12 shaders from tropics and sanctuary, it's enough reduction in register pressure to get 16-wide mode. 7 shaders from heroes of newerth and savage2 are hurt by about 1.1%, where copy propagation of negates ends up preventing coalescing, but we could regain that by doing dataflow analysis in our copy propagation. No significant performance difference in tropics (n=11) Reviewed-by: Kenneth Graunke <[email protected]>