mesa.git
12 years agor600g: don't flush depth textures set as colorbuffers
Marek Olšák [Sun, 8 Jul 2012 01:10:37 +0000 (03:10 +0200)]
r600g: don't flush depth textures set as colorbuffers

The only case a depth buffer can be set as a color buffer is when flushing.

That wasn't always the case, but now this code isn't required anymore.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
12 years agor600g: don't set dirty_db_mask for a flushed depth texture
Marek Olšák [Sun, 8 Jul 2012 01:09:06 +0000 (03:09 +0200)]
r600g: don't set dirty_db_mask for a flushed depth texture

A flush depth texture is never set as a depth buffer and never flushed.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
12 years agor600g: flush depth textures bound to vertex shaders
Marek Olšák [Sun, 8 Jul 2012 00:14:18 +0000 (02:14 +0200)]
r600g: flush depth textures bound to vertex shaders

This was missing/broken. There are also minor code cleanups.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
12 years agor600g: do fine-grained depth texture flushing
Marek Olšák [Sat, 7 Jul 2012 23:54:24 +0000 (01:54 +0200)]
r600g: do fine-grained depth texture flushing

- maintain a mask of which mipmap levels are dirty (instead of one big flag)
- only flush what was requested at a given point and not the whole resource
  (most often only one level and one layer has to be flushed)

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
12 years agor600g: remove is_flush from DSA state
Marek Olšák [Sat, 7 Jul 2012 17:33:11 +0000 (19:33 +0200)]
r600g: remove is_flush from DSA state

we can just update the state when decompressing, there's no need to add
additional info into the DSA state

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
12 years agor600g: set DISABLE in CB_COLOR_CONTROL if colormask is 0
Marek Olšák [Sat, 7 Jul 2012 15:11:32 +0000 (17:11 +0200)]
r600g: set DISABLE in CB_COLOR_CONTROL if colormask is 0

this will be useful for in-place DB decompression, otherwise should be harmless

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
12 years agor600g: move CB_SHADER_MASK setup into cb_misc_state
Marek Olšák [Sat, 7 Jul 2012 07:01:38 +0000 (09:01 +0200)]
r600g: move CB_SHADER_MASK setup into cb_misc_state

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
12 years agor600g: move MULTIWRITE setup into cb_misc_state for r6xx-r7xx
Marek Olšák [Sat, 7 Jul 2012 05:40:36 +0000 (07:40 +0200)]
r600g: move MULTIWRITE setup into cb_misc_state for r6xx-r7xx

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
12 years agor600g: move CB_TARGET_MASK setup into new cb_misc_state
Marek Olšák [Sat, 7 Jul 2012 05:15:04 +0000 (07:15 +0200)]
r600g: move CB_TARGET_MASK setup into new cb_misc_state

to remove some overhead from draw_vbo. This is a derived state.

BTW, I've got no idea how compute interacts with 3D here, but it should
use cb_misc_state, so that 3D and compute don't conflict.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
12 years agost/mesa: implement accelerated stencil blitting using shader stencil export
Marek Olšák [Mon, 9 Jul 2012 03:08:36 +0000 (05:08 +0200)]
st/mesa: implement accelerated stencil blitting using shader stencil export

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
12 years agost/mesa: set colormask to zero when blitting depth
Marek Olšák [Mon, 9 Jul 2012 00:23:22 +0000 (02:23 +0200)]
st/mesa: set colormask to zero when blitting depth

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
12 years agogallium/u_blit: remove useless memset calls
Marek Olšák [Sun, 8 Jul 2012 23:50:31 +0000 (01:50 +0200)]
gallium/u_blit: remove useless memset calls

the structure is calloc'd.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
12 years agogallium/u_blit: drop not-very-useful wrapper around util_blit_pixels_writemask
Marek Olšák [Sun, 8 Jul 2012 23:20:11 +0000 (01:20 +0200)]
gallium/u_blit: drop not-very-useful wrapper around util_blit_pixels_writemask

just rename it to util_blit_pixels

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
12 years agogallium/u_blit: don't do two copies for non-2D textures
Marek Olšák [Sun, 8 Jul 2012 14:02:41 +0000 (16:02 +0200)]
gallium/u_blit: don't do two copies for non-2D textures

Because u_blit couldn't sample a 1D, 3D, CUBE and ARRAY texture, we created
a 2D texture holding a copy of one slice of the source texture (even for 1D).

Let's just do it right.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
12 years agogallium/util: move pipe_tex_to_tgsi_tex helper function into u_inlines
Marek Olšák [Sun, 8 Jul 2012 13:58:19 +0000 (15:58 +0200)]
gallium/util: move pipe_tex_to_tgsi_tex helper function into u_inlines

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
12 years agogallium/u_blitter: accelerate stencil-only copying
Marek Olšák [Sat, 7 Jul 2012 22:06:27 +0000 (00:06 +0200)]
gallium/u_blitter: accelerate stencil-only copying

This doesn't seem to be used by anything yet, but better safe than sorry.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
12 years agogallium/u_blitter: accelerate depth-stencil copying using shader stencil export
Marek Olšák [Sat, 7 Jul 2012 21:48:37 +0000 (23:48 +0200)]
gallium/u_blitter: accelerate depth-stencil copying using shader stencil export

This fixes stencil buffer write transfers on r600g.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
12 years agogallium: add util_format_stencil_only helper function
Marek Olšák [Sat, 7 Jul 2012 21:23:49 +0000 (23:23 +0200)]
gallium: add util_format_stencil_only helper function

used for stencil sampler views.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
12 years agogallium/u_blitter: minify depth0 when initializing last_layer
Marek Olšák [Sat, 7 Jul 2012 21:06:15 +0000 (23:06 +0200)]
gallium/u_blitter: minify depth0 when initializing last_layer

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
12 years agogallium/u_gen_mipmap: accelerate depth texture mipmap generation
Marek Olšák [Sat, 7 Jul 2012 19:28:55 +0000 (21:28 +0200)]
gallium/u_gen_mipmap: accelerate depth texture mipmap generation

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
12 years agomesa: remove assertions that do not allow compressed 2D_ARRAY textures
Marek Olšák [Sun, 8 Jul 2012 17:24:37 +0000 (19:24 +0200)]
mesa: remove assertions that do not allow compressed 2D_ARRAY textures

NOTE: This is a candidate for the 8.0 branch.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
12 years agoi965/msaa: Enable CMS layout on Gen7 for the formats that support it.
Paul Berry [Fri, 6 Jul 2012 01:50:56 +0000 (18:50 -0700)]
i965/msaa: Enable CMS layout on Gen7 for the formats that support it.

Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
12 years agoi965/msaa: Add CMS support to blorp.
Paul Berry [Tue, 3 Jul 2012 15:13:35 +0000 (08:13 -0700)]
i965/msaa: Add CMS support to blorp.

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 <chad.versace@linux.intel.com>
12 years agoi965/msaa: Add CMS-related sampler messages to brw_defines.h.
Paul Berry [Tue, 3 Jul 2012 18:51:42 +0000 (11:51 -0700)]
i965/msaa: Add CMS-related sampler messages to brw_defines.h.

Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
12 years agoi965/msaa: Set SURFACE_STATE properly when CMS MSAA is in use.
Paul Berry [Tue, 3 Jul 2012 18:36:39 +0000 (11:36 -0700)]
i965/msaa: Set SURFACE_STATE properly when CMS MSAA is in use.

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 <chad.versace@linux.intel.com>
12 years agoi965/msaa: Add CMS MSAA settings to brw_structs.h.
Paul Berry [Tue, 3 Jul 2012 18:05:55 +0000 (11:05 -0700)]
i965/msaa: Add CMS MSAA settings to brw_structs.h.

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 <chad.versace@linux.intel.com>
12 years agoi965/msaa: Allocate MCS buffer when CMS MSAA is in use.
Paul Berry [Tue, 3 Jul 2012 15:35:54 +0000 (08:35 -0700)]
i965/msaa: Allocate MCS buffer when CMS MSAA is in use.

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 <chad.versace@linux.intel.com>
12 years agoi965/msaa: Add an enum to describe MSAA layout.
Paul Berry [Wed, 4 Jul 2012 12:48:25 +0000 (05:48 -0700)]
i965/msaa: Add an enum to describe MSAA layout.

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 <chad.versace@linux.intel.com>
12 years agoi965/msaa: Move {rt,tex}_interleaved into blorp program key.
Paul Berry [Thu, 5 Jul 2012 17:28:24 +0000 (10:28 -0700)]
i965/msaa: Move {rt,tex}_interleaved into blorp program key.

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 <chad.versace@linux.intel.com>
12 years agomapi: Move GL_NV_draw_buffers extension to es_EXT.xml
Kristian Høgsberg [Wed, 11 Jul 2012 03:15:28 +0000 (23:15 -0400)]
mapi: Move GL_NV_draw_buffers extension to es_EXT.xml

We don't generate public entrypoints for GLES extensions, so move the
GL_NV_draw_buffers definition from ARB_draw_buffers.xml to es_EXT.xml.
When the extension is defined in ARB_draw_buffers.xml, we end up with a
public entry point for it, but no prototype, which gives an error when
compiled with --disable-asm and --disable-shared-glapi.

Instead, just move the GLES extension to es_EXT.xml so this doesn't happen.

Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
12 years agoegl: Add EGL_WAYLAND_PLANE_WL attribute
Kristian Høgsberg [Thu, 5 Jul 2012 20:43:04 +0000 (16:43 -0400)]
egl: Add EGL_WAYLAND_PLANE_WL attribute

This lets us specify the plane to create the image for for multiplanar
wl_buffers.

Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
12 years agowayland-drm: Add protocol to create planar buffers
Kristian Høgsberg [Thu, 5 Jul 2012 20:27:05 +0000 (16:27 -0400)]
wayland-drm: Add protocol to create planar buffers

12 years agowayland-drm: Pass struct wl_drm_buffer to the driver
Kristian Høgsberg [Thu, 5 Jul 2012 18:19:48 +0000 (14:19 -0400)]
wayland-drm: Pass struct wl_drm_buffer to the driver

We're going to extend this to support multi-plane buffers, so pass this
to the driver so it can access the details.

12 years agointel: Implement __DRIimage::createSubImage and bump supported version to 5
Kristian Høgsberg [Thu, 5 Jul 2012 17:02:02 +0000 (13:02 -0400)]
intel: Implement __DRIimage::createSubImage and bump supported version to 5

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 <krh@bitplanet.net>
12 years agointel: Add offset field to miptree
Kristian Høgsberg [Thu, 5 Jul 2012 03:09:14 +0000 (23:09 -0400)]
intel: Add offset field to miptree

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 <krh@bitplanet.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agointel: Add support for new __DRIimage formats
Kristian Høgsberg [Thu, 5 Jul 2012 16:13:06 +0000 (12:13 -0400)]
intel: Add support for new __DRIimage formats

12 years ago__DRIimage: version 5, add new formats and createSubImage
Kristian Høgsberg [Thu, 5 Jul 2012 02:56:09 +0000 (22:56 -0400)]
__DRIimage: version 5, add new formats and createSubImage

The additions in version 5 enables creating EGLImages for different planes
of a YUV buffer.  createImageFromName is still used to create the containing
__DRIimage, and createSubImage can then be used no that __DRIimage to create
__DRIimages that correspond to the y, u, and v planes (__DRI_IMAGE_FORMAT_R8)
or the uv planes (__DRI_IMAGE_FORMAT_RG88) for formats such as NV12 where
the u and v components are interleaved.  Packed formats such as YUYV etc
doesn't require any special treatment, we just sample those as a regular
ARGB texture.

Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
12 years agor600g/compute: Disable growing the memory pool
Tom Stellard [Wed, 11 Jul 2012 16:18:22 +0000 (16:18 +0000)]
r600g/compute: Disable growing the memory pool

The code for growing the memory pool (which is used for storing all of
the global buffers) wasn't working.  There seem to be two separate issues
with the memory pool code.  The first was the way it was growing the pool.
When the memory pool needed more space, it would:

1. Copy the data from the memory pool's backing texture to system memory.
2. Delete the memory pool's texture
3. Create a bigger backing texture for the memory pool.
4. Copy the data from system memory into the bigger texture.

The copy operations didn't seem to be working, and I suspect that since
they were using fragment shaders to do the copy, that there might have
been a problem with the mixing of compute and 3D state.

The other issue is that the size of 1D textures is limited, and I was
having trouble getting 2D textures to work.

I think these problems will be easier to solve once more code is shared
between 3D and compute, which is why I decided to disable it for now
rather than continue searching for a fix.

12 years agoradeon/llvm: Use multiclasses for floating point loads
Tom Stellard [Tue, 10 Jul 2012 15:15:49 +0000 (11:15 -0400)]
radeon/llvm: Use multiclasses for floating point loads

The original strategy for handling floating point loads, which was to
lower (f32 load) to (f32 bitcast (i32 load)) wasn't really working.  The
main problem was that the DAG legalizer couldn't handle replacing a node
with two results (load) with a node with only one result (bitcast).

12 years agoradeon/llvm: Don't set the IMM bit in SMRD instruction definitions.
Tom Stellard [Tue, 10 Jul 2012 12:51:31 +0000 (08:51 -0400)]
radeon/llvm: Don't set the IMM bit in SMRD instruction definitions.

The IMM bit is already being set in SICodeEmitter.

12 years agor600g/compute: Add more debugging output
Tom Stellard [Wed, 11 Jul 2012 17:46:59 +0000 (17:46 +0000)]
r600g/compute: Add more debugging output

12 years agoi965: Revert the VBOs-in-system-memory hack.
Eric Anholt [Thu, 5 Jul 2012 20:43:43 +0000 (13:43 -0700)]
i965: Revert the VBOs-in-system-memory hack.

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 <kenneth@whitecape.org>
12 years agoAdd emacs setup for the docs/devinfo.html comment wrapping recommendation.
Eric Anholt [Wed, 4 Jul 2012 20:12:09 +0000 (13:12 -0700)]
Add emacs setup for the docs/devinfo.html comment wrapping recommendation.

Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agoglx/dri2: Add support for GLX_ARB_create_context_robustness
Ian Romanick [Tue, 3 Jul 2012 18:32:59 +0000 (11:32 -0700)]
glx/dri2: Add support for GLX_ARB_create_context_robustness

Add the infrastructure required for this extension.  There is no
xserver support and no driver support yet.  Drivers can enable this be
advertising DRI2 version 4 and accepting the
__DRI_CTX_FLAG_ROBUST_BUFFER_ACCESS flag and the
__DRI_CTX_ATTRIB_RESET_STRATEGY attribute in create context.

Some additional Mesa infrastructure is needed before drivers can do
this.  The GL_ARB_robustness spec, which all Mesa drivers already
advertise, requires:

    "If the behavior is LOSE_CONTEXT_ON_RESET_ARB, a graphics reset
    will result in the loss of all context state, requiring the
    recreation of all associated objects."

It is necessary to land this infrastructure now so that the related
infrastructure can land in the xserver.  The xserver has very long
release schedules, and the remaining Mesa parts should land long, long
before the next xserver merge window opens.

v2: Expose robustness as a DRI2 extension rather than bumping
__DRI_DRI2_VERSION.

v3: Add a comment explaining why dri2->base.version >= 3 is also
required for GLX_ARB_create_context_robustness.

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 agodri2: Hard-code the DRI2 version
Ian Romanick [Tue, 3 Jul 2012 18:15:00 +0000 (11:15 -0700)]
dri2: Hard-code the DRI2 version

This allows revising the dri_interface.h separately from adding driver
support.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoglapi: Apply Xorg indent rules to all files generated for the xserver
Ian Romanick [Fri, 8 Jun 2012 20:17:10 +0000 (13:17 -0700)]
glapi: Apply Xorg indent rules to all files generated for the xserver

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agodocs: Update GL3.txt.
Kenneth Graunke [Tue, 10 Jul 2012 23:51:49 +0000 (16:51 -0700)]
docs: Update GL3.txt.

We neglected to list the deprecation model/forward compatible context
support.

inverse() has been done for a while.

None of us know what "highp change" means; GLSL 1.30 already added the
ability to recognize precision keywords, and it doesn't look like 1.40
has any new requirements there (precision keywords still have no meaning).

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agomesa: Remove unneeded extern qualifiers
Chad Versace [Fri, 22 Jun 2012 02:18:03 +0000 (19:18 -0700)]
mesa: Remove unneeded extern qualifiers

Remove 'extern' from the functions declared in texcompress_etc.h.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
12 years agor600g: improve flushed depth texture handling v2
Vadim Girlin [Tue, 10 Jul 2012 22:19:51 +0000 (02:19 +0400)]
r600g: improve flushed depth texture handling v2

Use r600_resource_texture::flished_depth_texture for GPU access, and
allocate it in the VRAM. For transfers we'll allocate texture in the GTT
and store it in the r600_transfer::staging.

Improves performance when flushed depth texture is frequently used by the
GPU, e.g. in Lightsmark (~30%)

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
12 years agoi965: Add hardware context support.
Kenneth Graunke [Tue, 12 Jun 2012 19:07:09 +0000 (12:07 -0700)]
i965: Add hardware context support.

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 <kenneth@whitecape.org>
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Acked-by: Paul Berry <stereotype441@gmail.com>
12 years agomesa/test: Update name of GL_TIME_ELAPSED
Ian Romanick [Tue, 10 Jul 2012 20:37:06 +0000 (13:37 -0700)]
mesa/test: Update name of GL_TIME_ELAPSED

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 <ian.d.romanick@intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=51956

12 years agodocs/relnotes-8.0.4: fix html markup
Andreas Boll [Tue, 10 Jul 2012 17:09:28 +0000 (19:09 +0200)]
docs/relnotes-8.0.4: fix html markup

12 years agogallium/docs: document interface changes for timestamp query
Marek Olšák [Tue, 10 Jul 2012 16:55:46 +0000 (18:55 +0200)]
gallium/docs: document interface changes for timestamp query

the query type is already documented

12 years agoidentity: implement get_timestamp
Marek Olšák [Tue, 10 Jul 2012 16:48:02 +0000 (18:48 +0200)]
identity: implement get_timestamp

12 years agonoop: implement get_timestamp
Marek Olšák [Tue, 10 Jul 2012 16:46:08 +0000 (18:46 +0200)]
noop: implement get_timestamp

12 years agotrace: implement get_timestamp
Marek Olšák [Tue, 10 Jul 2012 16:43:51 +0000 (18:43 +0200)]
trace: implement get_timestamp

12 years agogalahad: implement get_timestamp
Marek Olšák [Tue, 10 Jul 2012 16:14:46 +0000 (18:14 +0200)]
galahad: implement get_timestamp

12 years agodocs: update relnotes-8.1 and GL3 status
Marek Olšák [Thu, 5 Jul 2012 18:27:28 +0000 (20:27 +0200)]
docs: update relnotes-8.1 and GL3 status

12 years agosoftpipe: implement get_timestamp and expose ARB_timer_query
Marek Olšák [Thu, 5 Jul 2012 21:20:21 +0000 (23:20 +0200)]
softpipe: implement get_timestamp and expose ARB_timer_query

PIPE_QUERY_TIMESTAMP is already implemented and working.

12 years agost/mesa: implement ARB_timer_query
Marek Olšák [Thu, 5 Jul 2012 18:27:01 +0000 (20:27 +0200)]
st/mesa: implement ARB_timer_query

12 years agogallium: add QUERY_TIMESTAMP cap and get_timestamp screen function
Marek Olšák [Thu, 5 Jul 2012 18:04:02 +0000 (20:04 +0200)]
gallium: add QUERY_TIMESTAMP cap and get_timestamp screen function

12 years agomesa: implement glGet(GL_TIMESTAMP) v2
Marek Olšák [Thu, 5 Jul 2012 18:21:29 +0000 (20:21 +0200)]
mesa: implement glGet(GL_TIMESTAMP) v2

This is adds a new driver function to retrieve the timestamp.

Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agomesa: add ARB_timer_query to the extension list
Marek Olšák [Tue, 26 Jun 2012 19:24:19 +0000 (21:24 +0200)]
mesa: add ARB_timer_query to the extension list

Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa: add QueryCounter display list support
Marek Olšák [Tue, 26 Jun 2012 19:47:44 +0000 (21:47 +0200)]
mesa: add QueryCounter display list support

Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agomesa: implement TIMESTAMP query and glQueryCounter
Marek Olšák [Tue, 26 Jun 2012 03:55:12 +0000 (05:55 +0200)]
mesa: implement TIMESTAMP query and glQueryCounter

Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agoglapi: add ARB_timer_query
Marek Olšák [Mon, 25 Jun 2012 23:36:44 +0000 (01:36 +0200)]
glapi: add ARB_timer_query

Reviewed-by: Brian Paul <brianp@vmware.com>
12 years agodocs: Add 8.0.4 release notes
Ian Romanick [Tue, 10 Jul 2012 15:30:11 +0000 (08:30 -0700)]
docs: Add 8.0.4 release notes

Also add news story.  Extra, extra!  Read all about it!

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
12 years agoglsl: Add parsing for GLSL uniform blocks.
Eric Anholt [Wed, 18 Apr 2012 20:35:56 +0000 (13:35 -0700)]
glsl: Add parsing for GLSL uniform blocks.

This doesn't do anything with the uniform block declarations yet, so
usage of those uniforms finds them to be undeclared.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
12 years agoglsl: Don't hide the type of struct_declaration_list.
Eric Anholt [Thu, 26 Apr 2012 17:16:52 +0000 (10:16 -0700)]
glsl: Don't hide the type of struct_declaration_list.

I've been trying to derive from this for UBO support, and the slightly
obfuscated types were putting me over the edge.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
12 years agoglcpp: Add built-in #define for GL_ARB_uniform_buffer_object.
Kenneth Graunke [Tue, 3 Jul 2012 22:19:59 +0000 (15:19 -0700)]
glcpp: Add built-in #define for GL_ARB_uniform_buffer_object.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
12 years agoglsl: Parser handles "#extension GL_ARB_uniform_buffer_object"
Vincent Lejeune [Sun, 25 Dec 2011 18:17:03 +0000 (19:17 +0100)]
glsl: Parser handles "#extension GL_ARB_uniform_buffer_object"

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
12 years agoglsl: Reduce a bit of extra code in the merging of layout qualifiers.
Eric Anholt [Tue, 24 Apr 2012 19:18:17 +0000 (12:18 -0700)]
glsl: Reduce a bit of extra code in the merging of layout qualifiers.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
12 years agoglsl: Take advantage of the layout qualifier flags union to clean up parsing.
Eric Anholt [Tue, 24 Apr 2012 19:14:39 +0000 (12:14 -0700)]
glsl: Take advantage of the layout qualifier flags union to clean up parsing.

The got_one variable was set iff one of the bits in flags.i was set.

v2: Fix incorrect dropping of the ARB_conservative_depth warning.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> (v1)
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
12 years agor600g: Don't create a texture for the memory_pool during screen init
Tom Stellard [Mon, 9 Jul 2012 15:42:25 +0000 (11:42 -0400)]
r600g: Don't create a texture for the memory_pool during screen init

This fixes a segfault in r600_screen_create() introduced by
eb065f5d9d1159af3a88a64a7606c9b6d67dc3

Reported by tilman on irc.

12 years agoradeon/llvm: Rename namespace from AMDIL to AMDGPU
Tom Stellard [Sun, 8 Jul 2012 16:41:05 +0000 (12:41 -0400)]
radeon/llvm: Rename namespace from AMDIL to AMDGPU

12 years agor600g: Update number of gprs when adding a vertex instruction
Tom Stellard [Thu, 28 Jun 2012 19:55:54 +0000 (19:55 +0000)]
r600g: Update number of gprs when adding a vertex instruction

12 years agor600g/compute: Use evergreen_cb() for binding RATs
Tom Stellard [Wed, 27 Jun 2012 13:37:05 +0000 (13:37 +0000)]
r600g/compute: Use evergreen_cb() for binding RATs

12 years agor600g: Add support for RATs in evergreen_cb()
Tom Stellard [Wed, 27 Jun 2012 13:27:30 +0000 (13:27 +0000)]
r600g: Add support for RATs in evergreen_cb()

12 years agor600g: Use a texture as the underlying resource for compute_memory_pool
Tom Stellard [Thu, 21 Jun 2012 23:32:43 +0000 (19:32 -0400)]
r600g: Use a texture as the underlying resource for compute_memory_pool

This the first step towards being able to use evergreen_cb to bind RATs.

12 years agor600g: Add is_rat flag to r600_resource_texture
Tom Stellard [Fri, 22 Jun 2012 17:02:33 +0000 (17:02 +0000)]
r600g: Add is_rat flag to r600_resource_texture

12 years agor600g: Add r600_context_pipe_state_emit()
Tom Stellard [Tue, 26 Jun 2012 20:54:32 +0000 (20:54 +0000)]
r600g: Add r600_context_pipe_state_emit()

This function is used when dispatching compute shader in order to avoid
mixing compute and 3D registers in the context's dirty list.  This
allows the compute code to resuse 3D functions like evergreen_cb, which
return a struct r600_pipe_state and still have control over when and how
the register writes are emitted.

12 years agor600g: Add pkt_flag parameter to r600_context_block_emit_dirty()
Tom Stellard [Mon, 25 Jun 2012 21:16:11 +0000 (21:16 +0000)]
r600g: Add pkt_flag parameter to r600_context_block_emit_dirty()

This allows the shader type bit to be set in the pm4 header when
emitting registers for compute shaders.

Reviewed-by: Marek Olšák <maraeo@gmail.com>
12 years agor600g/compute: Move LOOP_CONST initialization to start_compute_cs atom
Tom Stellard [Tue, 26 Jun 2012 14:37:27 +0000 (14:37 +0000)]
r600g/compute: Move LOOP_CONST initialization to start_compute_cs atom

12 years agor600g: Add start_compute_cs atom to struct r600_context
Tom Stellard [Mon, 25 Jun 2012 17:56:01 +0000 (17:56 +0000)]
r600g: Add start_compute_cs atom to struct r600_context

The start_compute_cs atom initializes some config and context registers
to the values needed for running compute shaders.  When a compute shader
is dispatched, this atom is emitted after the start_cs_cmd atom, which
initializes registers that are common to both 3D and compute.

Reviewed-by: Marek Olšák <maraeo@gmail.com>
12 years agor600g: Add pkt_flag member to struct r600_command_buffer
Tom Stellard [Mon, 25 Jun 2012 20:00:47 +0000 (20:00 +0000)]
r600g: Add pkt_flag member to struct r600_command_buffer

Some packets require the shader type bit (bit 1) to be set when
used for compute shaders.  The pkt_flag will be initialized to
RADEON_CP_PACKET3_COMPUTE_MODE for any struct r600_command_buffer used
for dispatching compute shaders and it will be or'd against the result of
the PKT3 macro when adding a new packet to a struct r600_command buffer.

Reviewed-by: Marek Olšák <maraeo@gmail.com>
12 years agor600g: Only emit start_cs_cmd atom once for compute command streams
Tom Stellard [Sun, 24 Jun 2012 23:24:39 +0000 (19:24 -0400)]
r600g: Only emit start_cs_cmd atom once for compute command streams

12 years agor600g: fix stencil texturing with Z32_FLOAT_S8X24_UINT
Marek Olšák [Sat, 7 Jul 2012 22:25:36 +0000 (00:25 +0200)]
r600g: fix stencil texturing with Z32_FLOAT_S8X24_UINT

12 years agor600g: add assertions after translate_colorswap/colorformat/dbformat/texformat
Marek Olšák [Sat, 7 Jul 2012 22:23:41 +0000 (00:23 +0200)]
r600g: add assertions after translate_colorswap/colorformat/dbformat/texformat

12 years agor600g: inline r600_hw_copy_region
Marek Olšák [Sat, 7 Jul 2012 17:10:00 +0000 (19:10 +0200)]
r600g: inline r600_hw_copy_region

12 years agor600g: enable dual src blending on r7xx
Marek Olšák [Sat, 7 Jul 2012 07:36:35 +0000 (09:36 +0200)]
r600g: enable dual src blending on r7xx

No lockups here.

12 years agor600g: use depth format from pipe_surface, not pipe_resource
Marek Olšák [Sat, 7 Jul 2012 16:41:01 +0000 (18:41 +0200)]
r600g: use depth format from pipe_surface, not pipe_resource

12 years agor600g: use u_box_origin_2d helper function
Marek Olšák [Sat, 7 Jul 2012 00:30:54 +0000 (02:30 +0200)]
r600g: use u_box_origin_2d helper function

12 years agogallium/u_blitter: consolidate some state changes
Marek Olšák [Sat, 7 Jul 2012 15:31:42 +0000 (17:31 +0200)]
gallium/u_blitter: consolidate some state changes

12 years agor600g: remove stray semicolon
Marek Olšák [Fri, 6 Jul 2012 23:26:31 +0000 (01:26 +0200)]
r600g: remove stray semicolon

12 years agodocs: document ARB_blend_func_extended and EXT_texture_rg in relnotes-8.1
Marek Olšák [Sat, 7 Jul 2012 13:09:05 +0000 (15:09 +0200)]
docs: document ARB_blend_func_extended and EXT_texture_rg in relnotes-8.1

also sort the extensions

12 years agoi965/fs: Invalidate live intervals after copy propagation.
Eric Anholt [Tue, 5 Jun 2012 20:14:38 +0000 (13:14 -0700)]
i965/fs: Invalidate live intervals after copy propagation.

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 <kenneth@whitecape.org>
12 years agoi965/fs: Invalidate live intervals in passes that remove an instruction.
Eric Anholt [Tue, 5 Jun 2012 20:13:33 +0000 (13:13 -0700)]
i965/fs: Invalidate live intervals in passes that remove an instruction.

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 <kenneth@whitecape.org>
NOTE: This is a candidate for the 8.0 release branch.

12 years agoi965/vs: Move the other two src_reg/dst_reg constructors to brw_vec4.cpp.
Eric Anholt [Wed, 4 Jul 2012 20:31:46 +0000 (13:31 -0700)]
i965/vs: Move the other two src_reg/dst_reg constructors to brw_vec4.cpp.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
12 years agoi965/vs: Move class functions to brw_vec4.cpp.
Eric Anholt [Wed, 4 Jul 2012 20:25:27 +0000 (13:25 -0700)]
i965/vs: Move class functions to brw_vec4.cpp.

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 <kenneth@whitecape.org>
12 years agoi965/fs: Move class functions from the header to .cpp files.
Eric Anholt [Wed, 4 Jul 2012 20:12:50 +0000 (13:12 -0700)]
i965/fs: Move class functions from the header to .cpp files.

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 <kenneth@whitecape.org>