OSDN Git Service
Samuel Thibault [Sun, 10 Nov 2013 18:32:01 +0000 (19:32 +0100)]
EGL: fix build without libdrm
This fixes building EGL without libdrm support.
Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Chris Forbes [Sat, 9 Nov 2013 20:15:13 +0000 (09:15 +1300)]
i965: convert brw_lower_offset_array_visitor to ir_rvalue_visitor
Previously, we would bogusly replace the entire statement containing the
ir_texture node with an ir_dereference_variable.
Correct this to just replace the ir_texture node itself as intended.
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Chris Forbes [Sat, 9 Nov 2013 09:26:08 +0000 (22:26 +1300)]
glsl: fix missing breaks in equals(ir_texture,..)
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Cc: "10.0" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Eric Anholt [Fri, 8 Nov 2013 18:49:47 +0000 (10:49 -0800)]
i965: Make the driver compile until a proper libdrm can be released.
No depending on unreleased code.
Armin K [Fri, 8 Nov 2013 23:06:45 +0000 (00:06 +0100)]
glx: conditionaly build dri3 and present loader (v3)
This patch makes it possible to disable DRI3 if desired.
Tested with:
./configure --disable-dri3 --with-dri-drivers=i965 \
--with-gallium-drivers= --disable-vdpau --disable-egl \
--disable-gbm --disable-xvmc
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=71397
Cc: 10.0 <mesa-stable@lists.freedesktop.org>
Matt Turner [Thu, 7 Nov 2013 23:09:33 +0000 (15:09 -0800)]
i965/fs: Don't perform CSE on inst HW_REG dests (unless it's null)
Commit
b16b3c87 began performing CSE on CMP instructions with null
destinations. I relaxed the restrictions a bit too much, thereby
allowing CSE to be performed on instructions with, for instance, an
explicit accumulator destination.
This broke the arb_gpu_shader5/fs-imulExtended shader tests because
they emit MUL instructions with the accumulator as the destination. CSE
would instead cause the MUL to write to a GRF, which is lower precision
than the accumulator.
Reviewed-by: Eric Anholt <eric@anholt.net>
Cc: 10.0 <mesa-stable@lists.freedesktop.org>
Chad Versace [Fri, 8 Nov 2013 19:35:25 +0000 (11:35 -0800)]
i965: Remove some tiny dead code from intel_miptree_map_movntdqa
Reviewed-by: Matt Turner <mattst88@gmail.com>
Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
Brian Paul [Fri, 8 Nov 2013 15:33:47 +0000 (08:33 -0700)]
swrast: add missing notify_reset parameter to dri_create_context()
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Christian König [Sun, 3 Nov 2013 14:19:00 +0000 (15:19 +0100)]
vl: use a separate context for shader based decode v2
This makes VDPAU thread save again.
v2: fix some memory leaks reported by Aaron Watry.
Signed-off-by: Christian König <christian.koenig@amd.com>
José Fonseca [Fri, 8 Nov 2013 12:22:22 +0000 (12:22 +0000)]
scons: Add dri2_query_renderer.c to sources.
José Fonseca [Fri, 8 Nov 2013 12:20:00 +0000 (12:20 +0000)]
st/dri: Fix dri_create_context declaration prototype.
Keith Packard [Fri, 8 Nov 2013 03:01:48 +0000 (19:01 -0800)]
dri3: Fix pixmap buf_id computation
Looks like some kind of rebase damage to me...
Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Eric Anholt [Thu, 7 Nov 2013 23:44:57 +0000 (15:44 -0800)]
glx: Add a more informative debug message in a DRI3 error path.
Keith Packard [Tue, 5 Nov 2013 02:15:51 +0000 (18:15 -0800)]
Add DRI3+Present loader
Uses the __DRIimage loader interfaces.
v2: Fix _XIOErrors when DRI3 isn't present (change by anholt). Apparently
XCB just terminates your connection if you don't check for extensions
before using them, instead of returning an error like you'd expect.
Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Keith Packard [Tue, 5 Nov 2013 02:09:51 +0000 (18:09 -0800)]
dri: add __DRIimageLoaderExtension and __DRIimageDriverExtension
These provide an interface between the driver and the loader to allocate
color buffers through the DRIimage extension interface rather than through a
loader-specific extension (as is used by DRI2, for instance).
The driver uses the loader 'getBuffers' interface to allocate color buffers.
The loader uses the createNewScreen2, createNewDrawable, createNewContext,
getAPIMask and createContextAttribs APIS (mostly shared with DRI2).
This interface will work with the DRI3 loader, and should also work with GBM
and other loaders so that drivers need not be customized for each new loader
interface, as long as they provide this image interface.
v2: Fix build of i915 and i965 together (by anholt)
Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Keith Packard [Tue, 5 Nov 2013 01:33:34 +0000 (17:33 -0800)]
dri/i915,dri/i965: Use driGLFormatToImageFormat and driImageFormatToGLFormat
Remove private versions of these functions
Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
Keith Packard [Tue, 5 Nov 2013 01:29:08 +0000 (17:29 -0800)]
dri/common: Add functions mapping MESA_FORMAT_* <-> __DRI_IMAGE_FORMAT_*
The __DRI_IMAGE_FORMAT codes are used by the image extension, drivers need to
be able to translate between them. Instead of duplicating this translation in
each driver, create a shared version.
Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
Keith Packard [Tue, 5 Nov 2013 01:27:43 +0000 (17:27 -0800)]
Define __DRI_IMAGE_FORMAT_SARGB8
This format will be used by the i965 driver
Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Keith Packard [Tue, 4 Jun 2013 03:59:31 +0000 (20:59 -0700)]
dri/intel: Add explicit size parameter to intel_region_alloc_for_fd
Instead of assuming that the size will be height * pitch, have the caller pass
in the size explicitly.
Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
Keith Packard [Tue, 4 Jun 2013 03:56:41 +0000 (20:56 -0700)]
dri/intel: Split out DRI2 buffer update code to separate function
Make an easy place to splice in a DRI3 version of this function
Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Keith Packard [Tue, 4 Jun 2013 03:49:25 +0000 (20:49 -0700)]
drivers/dri/common: A few dri2 functions are not actually DRI2 specific
This just renames them so that they can be used with the DRI3 extension
without causing too much confusion.
Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Roland Scheidegger [Wed, 6 Nov 2013 19:35:51 +0000 (20:35 +0100)]
gallivm: deduplicate some indirect register address code
There's only one minor functional change, for immediates the pixel offsets
are no longer added since the values are all the same for all elements in
any case (it might be better if those weren't stored as soa vectors in the
first place maybe).
Reviewed-by: Zack Rusin <zackr@vmware.com>
Ian Romanick [Sat, 23 Feb 2013 00:45:27 +0000 (16:45 -0800)]
glx/tests: Add unit tests for the DRI2 part of GLX_MESA_query_renderer
After adding $(DEFINES) to AM_CPPFLAGS, the __glXGetCurrentContext
wrapper function is no longer needed and causes compile errors. Using
the correct defines causes it to be a macro!
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Ian Romanick [Sun, 17 Feb 2013 21:53:19 +0000 (13:53 -0800)]
glx/tests: Add unit tests for the GLX part of GLX_MESA_query_renderer
These tests primarilly ensure that the functions added by this extension
don't abuse other interfaces (e.g., glx_screen::query_renderer_integer)
when provided bad data.
These tests helped me find a couple small bugs in the initial
implementation.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Ian Romanick [Fri, 22 Feb 2013 23:35:27 +0000 (15:35 -0800)]
glx/tests: Add GetGLXScreenConfigs_called flag
Tests for the GLX_MESA_query_context extension will use this flag.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Ian Romanick [Sat, 16 Feb 2013 06:38:23 +0000 (22:38 -0800)]
docs: Import extension spec for GLX_MESA_query_renderer
The enumerated values are currently allocated from Intel's range.
v2: Fix a typo. Update the list of functions to which the new enums can
be passed. The "Current" versions were previously missing. Both things
noticed by Marek.
v3: Fix typo in return type of glXQueryRendererIntegerMESA in the spec
body (noticed by Ken). Fix typo in issue #14 referencing itself instead
of issue #13 (noticed by Dave).
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Acked-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Dave Airlie <airlied@redhat.com>
Ian Romanick [Sat, 16 Feb 2013 06:35:55 +0000 (22:35 -0800)]
glx/dri2: Add DRI2 support for GLX_MESA_query_renderer
The new functions for this extension were added to a separate file
(dri2_query_renderer.c) to facilitate unit testing. I tried putting
them in dri2_glx.c, and it resulting in an unending chain of
dependencies. It was the proverbial threading hanging from a sweater.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Ian Romanick [Sat, 23 Feb 2013 00:43:02 +0000 (16:43 -0800)]
glx/dri2: Pull some internal structures out to a separate header file
This structures will be accessed by internal functions that will be
added in a file separate from dri2_glx.c. The new code will be added to
a new file to facilitate unit testing.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Ian Romanick [Sat, 23 Feb 2013 01:13:10 +0000 (17:13 -0800)]
glx/tests: Silence warnings after adding fields to glx_screen_vtable
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Ian Romanick [Sat, 16 Feb 2013 06:35:24 +0000 (22:35 -0800)]
glx: Add functions and GLX plumbing for GLX_MESA_query_renderer
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Ian Romanick [Sat, 16 Feb 2013 06:33:04 +0000 (22:33 -0800)]
glx: Add GLX_MESA_query_renderer
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Ian Romanick [Fri, 15 Feb 2013 01:05:08 +0000 (17:05 -0800)]
glx: Add extension tracking GLX_MESA_query_renderer
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Ian Romanick [Fri, 15 Feb 2013 00:50:28 +0000 (16:50 -0800)]
i965: Wire up initial support for DRI_RENDERER_QUERY extension
v2: Use sysconf instead of sysinfo for improved portability. Suggested
by Ken.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Ian Romanick [Fri, 11 Oct 2013 19:26:57 +0000 (12:26 -0700)]
i915: Wire up initial support for DRI_RENDERER_QUERY extension
v2: Use sysconf instead of sysinfo for improved portability. Suggested
by Ken.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Ian Romanick [Fri, 11 Oct 2013 20:28:21 +0000 (13:28 -0700)]
dri: Add function to implement queries common to all Mesa drivers
v2: Add assertions that the version string has the expected format.
This will catch build errors (or changes to the version string format)
in debug build without exposing release builds to buffer over-runs.
Suggested by Ken.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Ian Romanick [Fri, 11 Oct 2013 19:20:57 +0000 (12:20 -0700)]
i965: Refactor the renderer string creation out of intelGetString
This will soon be used in intel_screen.c from a function that doesn't
have a gl_context.
v2: Delete local variables that are now unused. This matches v1 of the
changes to the i915 driver.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Ian Romanick [Fri, 15 Feb 2013 00:27:01 +0000 (16:27 -0800)]
i915: Refactor the renderer string creation out of intelGetString
This will soon be used in intel_screen.c from a function that doesn't
have a gl_context.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Ian Romanick [Fri, 11 Oct 2013 19:16:39 +0000 (12:16 -0700)]
i965: Refactor the vendor string out of intelGetString
This will soon be used in intel_screen.c from a function that doesn't
have a gl_context.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Ian Romanick [Fri, 15 Feb 2013 00:25:44 +0000 (16:25 -0800)]
i915: Refactor the vendor string out of intelGetString
This will soon be used in intel_screen.c from a function that doesn't
have a gl_context.
v2: Remove spurious break after return.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Ian Romanick [Thu, 14 Feb 2013 23:51:52 +0000 (15:51 -0800)]
dri: Add interface definition for DRI_RENDERER_QUERY extension
This will be used to let apps query hardware and driver limits before
creating a GL context.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Ian Romanick [Tue, 11 Sep 2012 08:08:44 +0000 (11:08 +0300)]
i965: Enable DRI_Robustness extension
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Ian Romanick [Tue, 11 Sep 2012 08:07:25 +0000 (11:07 +0300)]
i965: Propagate the GPU reset notifiction strategy down into the driver
If the application requests reset notifiction, connect up the reset
status query method and set gl_context::ResetStrategy.
v2: Update based on kernel interface / libdrm changes.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Ian Romanick [Tue, 11 Sep 2012 08:05:57 +0000 (11:05 +0300)]
i965: Add function to query the GPU reset status for a context
v2: Update based on kernel interface / libdrm changes.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Ian Romanick [Tue, 11 Sep 2012 07:31:13 +0000 (10:31 +0300)]
i965: Handle __DRI_CTX_FLAG_ROBUST_BUFFER_ACCESS flag
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Ian Romanick [Mon, 10 Sep 2012 14:31:24 +0000 (17:31 +0300)]
mesa/dri: Move context flag validation down into the drivers
Soon some drivers will support a different set of flags than other
drivers. If some flags have to be filtered in the driver, we might as
well filter all of them in the driver.
The changes in nouveau use tabs because nouveau seems to have it's own
indentation rules.
v2: Fix some rebase failures noticed by Ken (returning the wrong types,
etc.).
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Ian Romanick [Mon, 10 Sep 2012 14:11:33 +0000 (17:11 +0300)]
mesa/dri: Add basic plumbing for GLX_ARB_robustness reset notification strategy
No drivers advertise the DRI2 extension yet, so no driver should ever
see a value other than false for notify_reset.
The changes in nouveau use tabs because nouveau seems to have it's own
indentation rules.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Ian Romanick [Thu, 6 Sep 2012 05:31:59 +0000 (22:31 -0700)]
mesa: Implement proper tracking logic for glGetGraphicsResetStatusARB
Drivers still have to implement dd_function_table::GetGraphicsResetStatus.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Ian Romanick [Thu, 6 Sep 2012 05:30:43 +0000 (22:30 -0700)]
mesa: Add gl_shared_state::ShareGroupReset and gl_context::ShareGroupReset
These will be used to determine whether to signal a GPU reset after
another context in the share group has observed a reset.
v2: Change ShareGroupReset from GLboolean to bool. Suggested by Brian.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Ian Romanick [Thu, 6 Sep 2012 05:26:01 +0000 (22:26 -0700)]
mesa: Add dd_function_table::GetGraphicsResetStatus
This allows drivers to determine whether a GPU reset has occured. It
should return non-zero status if a reset was observed by the specified
context. Another mechanism will be used to observe resets occuring in
other contexts in the share group.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Ian Romanick [Thu, 6 Sep 2012 05:21:36 +0000 (22:21 -0700)]
mesa: Remove gl_context::ResetStatus
This isn't going to be used in the actual implemenation of
glGetGraphicsResetStatus.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Matt Turner [Sun, 27 Oct 2013 00:25:11 +0000 (17:25 -0700)]
st/xorg: Delete.
Acked-by: Lucas Stach <l.stach@pengutronix.de>
Matt Turner [Thu, 7 Nov 2013 05:40:05 +0000 (21:40 -0800)]
xorg-nouveau: Delete.
Matt Turner [Thu, 7 Nov 2013 05:38:39 +0000 (21:38 -0800)]
xorg-i915: Delete.
Acked-by: Jakob Bornecrantz <wallbraker@gmail.com>
Acked-by: Stéphane Marchesin <stephane.marchesin@gmail.com>
Ian Romanick [Fri, 8 Nov 2013 00:02:03 +0000 (16:02 -0800)]
docs: Mark off ARB_shader_atomic_counters for i965
...and update relnotes.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Francisco Jerez [Sun, 20 Oct 2013 21:11:27 +0000 (14:11 -0700)]
i965/gen7: Expose ARB_shader_atomic_counters.
Reviewed-by: Paul Berry <stereotype441@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Francisco Jerez [Wed, 11 Sep 2013 19:14:46 +0000 (12:14 -0700)]
glsl: Linker support for ARB_shader_atomic_counters.
v2: Add comments on the purpose of the auxiliary data structures.
Check for atomic counter overlaps. Use the contains_atomic()
convenience method. Add static assert with the number of expected
shader stages.
v3: Don't resize atomic arrays.
v4: Add comment on the reason why we don't resize atomic counter
arrays. Use 'strcmp(...) == 0' instead of '!strcmp(...)'.
v5 (idr): Don't use STL in the linker.
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Francisco Jerez [Sun, 20 Oct 2013 19:38:07 +0000 (12:38 -0700)]
glsl: Implement parser support for atomic counters.
v2: Mark atomic counters as read-only variables. Move offset overlap
code to the linker. Use the contains_atomic() convenience method.
v3: Use pointer to integer instead of non-const reference. Add
comment so we remember to add a spec quotation from the next GLSL
release once the issue of atomic counter aggregation within
structures is clarified.
v4 (idr): Don't use std::map because it's overkill. Add an assertion
that ctx->Const.MaxAtomicBufferBindings <= MAX_COMBINED_ATOMIC_BUFFERS.
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Kenneth Graunke [Wed, 23 Oct 2013 05:55:33 +0000 (22:55 -0700)]
Revert "i965: Add support for GL_AMD_performance_monitor on Ironlake."
This reverts most of commit
0f2da773070c06b6d20ad264d3abb19c4dfd9761.
(I chose to leave the additions to brw_defines.h.)
My previous Ironlake implementation was somewhat broken: counter data
was global, rather than per-context. This meant that performance
monitors captured data from your compositor, 2D driver, and other 3D
programs.
Originally, I believed that Sandybridge and later had an easy way to
avoid this problem (setting per-context flags in OACONTROL), while
Ironlake did not. So I'd intended to leave it as a known limitation of
performance monitoring support on Ironlake. However, this turned out
not to be true.
Unfortunately, our hardware only has one set of aggregating performance
counters shared between all 3D programs, and their values are not saved
or restored by hardware contexts. Also, at least on Sandybridge and
Ivybridge, the counters lose their values if the GPU goes to sleep.
To work around both of these problems, we have to snapshot the
performance counters at the beginning and end of each batch, similar to
how we handle query objects on platforms that don't support hardware
contexts.
For occlusion queries, this batch bookending approach is fairly simple:
only one occlusion query can be active at a time, and the result is a
single integer. Performance monitors are more complex: an arbitrary
number of monitors can be active at a time, each monitoring some subset
of our ~30 observability counters. Individual monitors can be started
and stopped at any point during the batch. Tracking where each monitor
started/ended relative to batch flushes ends up being a pain. And you
can run out of space in the buffer.
Properly supporting this required some serious rearchitecting of the
code. Rather than writing patches to try and morph a broken system into
a working one (which operates quite differently), I decided it would be
simplest to revert the old code and start fresh. Parts will look
familiar, but other parts are new.
I also decided it would be best to include Sandybridge and Ivybridge
support from the start, since the newer platforms have added complexity
that I wanted to make sure worked. They're also what most people care
about these days.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Kenneth Graunke [Thu, 7 Nov 2013 22:39:23 +0000 (14:39 -0800)]
glsl: Enable dFdx, dFdy, and fwidth by default in GLSL ES 3.00.
Previously, we only exposed them in desktop GL or with:
#extension GL_OES_standard_derivatives : enable
GLSL ES 3.00 includes these without an extension, so we need to expose
them by default.
Note that the above #extension line results in an error or desktop GL,
so we don't need to worry about this.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Fredrik Höglund [Thu, 7 Nov 2013 20:58:36 +0000 (21:58 +0100)]
docs: Mark off ARB_vertex_type_10f_11f_11f_rev for r600g
...and update relnotes.
Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Fredrik Höglund [Thu, 7 Nov 2013 20:49:43 +0000 (21:49 +0100)]
r600g: Add support for PIPE_FORMAT_R11G11B10_FLOAT vertex elements
Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Fredrik Höglund [Thu, 7 Nov 2013 20:48:34 +0000 (21:48 +0100)]
st/mesa: Add support for ARB_vertex_type_10f_11f_11f_rev
Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Brian Paul [Thu, 7 Nov 2013 22:23:34 +0000 (15:23 -0700)]
mesa: fix return statements in varray.c
Return false, not GL_FALSE. Add missing return value.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=71359
Brian Paul [Thu, 7 Nov 2013 21:29:50 +0000 (14:29 -0700)]
svga: always return 4 for PIPE_MAX_COLOR_BUFS
Even if the query returns 8, only 4 really work.
Reviewed-by: José Fonseca <jfonseca@vmware.com>
Brian Paul [Wed, 6 Nov 2013 00:24:22 +0000 (17:24 -0700)]
svga: return true for the PIPE_CAP_SM3 query
This just tells the state tracker to turn on the GL_ARB_shader_texture_lod
extension. This simply allows the GLSL compiler to emit TXL and TXD
instructions for both vertex and fragment shaders. We already support
these opcodes in the svga driver. Though, the shadow2DGrad() Piglit
tests are failing.
Reviewed-by: José Fonseca <jfonseca@vmware.com>
Matt Turner [Mon, 4 Nov 2013 20:06:17 +0000 (12:06 -0800)]
i965: Add an implementation of intel_miptree_map using streaming loads.
Improves performance of RoboHornet's 2D Canvas toDataURL benchmark
[http://www.robohornet.org/#e=canvastodataurl] by approximately 5x
on Baytrail on ChromiumOS.
Elapsed time drops by -81.4861% +/- 1.22619% (n=3 s=14.9105, confidence=95%).
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
Matt Turner [Mon, 4 Nov 2013 20:02:24 +0000 (12:02 -0800)]
mesa: Add a streaming load memcpy implementation.
Uses SSE 4.1's MOVNTDQA instruction (streaming load) to read from
uncached memory without polluting the cache.
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
Chris Forbes [Thu, 7 Nov 2013 20:57:26 +0000 (09:57 +1300)]
docs: Mark off some more things.
These have been supported on i965/Gen7+ for a while, and are listed
in the 10.0 release notes.
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Anuj Phogat [Mon, 4 Nov 2013 22:48:51 +0000 (14:48 -0800)]
i965: Fix 'SIMD16 only' dispatch of fragment shader in case of sample shading
This patch make changes to correctly set up the Dispatch GRF Start
Register in case of 'SIMD16 only' FS dispatch.
This fixes an issue of incorrect rendering on dolphin emulator with
GL_SAMPLE_SHADING enabled.
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Chris Forbes [Thu, 7 Nov 2013 20:02:53 +0000 (09:02 +1300)]
docs: update relnotes
Chris Forbes [Thu, 7 Nov 2013 09:46:22 +0000 (22:46 +1300)]
docs: Mark off ARB_vertex_type_10f_11f_11f_rev.
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Eric Anholt <eric@anholt.net>
Chris Forbes [Thu, 7 Nov 2013 08:26:15 +0000 (21:26 +1300)]
i965: Enable ARB_vertex_type_10f_11f_11f_rev on Gen6+.
This theoretically works on earlier hardware as well, but the extension
requires at least GL3.0.
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Eric Anholt <eric@anholt.net>
Chris Forbes [Thu, 7 Nov 2013 10:19:30 +0000 (23:19 +1300)]
i965: add support for UNSIGNED_INT_10F_11F_11F_REV vertex attribs
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Eric Anholt <eric@anholt.net>
Chris Forbes [Thu, 7 Nov 2013 09:24:06 +0000 (22:24 +1300)]
vbo: add 10_11_11 support to vbo_attrib_tmp
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Eric Anholt <eric@anholt.net>
Chris Forbes [Thu, 7 Nov 2013 09:05:01 +0000 (22:05 +1300)]
mesa: Add support to _mesa_bytes_per_vertex_attrib for 10_11_11 format.
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Eric Anholt <eric@anholt.net>
Chris Forbes [Thu, 7 Nov 2013 09:02:24 +0000 (22:02 +1300)]
mesa: add varray support for UNSIGNED_INT_10F_11F_11F_REV type
V2: fix interaction with VertexAttribFormat, since that landed after
this was originally written
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Eric Anholt <eric@anholt.net>
Chris Forbes [Thu, 7 Nov 2013 08:23:17 +0000 (21:23 +1300)]
mesa: Add extension scaffolding for ARB_vertex_type_10f_11f_11f_rev
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Eric Anholt <eric@anholt.net>
Matthew McClure [Tue, 29 Oct 2013 20:36:41 +0000 (13:36 -0700)]
draw,llvmpipe,util: add depth bias calculation for arb_depth_buffer_float
With this patch, the llvmpipe and draw modules will calculate the depth bias
according to floating point depth buffer semantics described in the
arb_depth_buffer_float specification, when the driver has a z buffer bound
with a format type of UTIL_FORMAT_TYPE_FLOAT.
By default, the driver will use the existing UNORM calculation for depth bias.
A new function, draw_set_zs_format, was added to calculate the Minimum
Resolvable Depth value and floating point depth sense for the draw module.
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Eric Anholt [Tue, 18 Jun 2013 20:52:03 +0000 (13:52 -0700)]
i965: Avoid flushing the batch for every blorp op.
This brings over the batch-wrap-prevention and aperture space checking
code from the normal brw_draw.c path, so that we don't need to flush the
batch every time.
There's a risk here if the intel_emit_post_sync_nonzero_flush() call isn't
high enough up in the state emit sequences -- before, we implicitly had
one at the batch flush before any state was emitted, so Mesa's workaround
emits didn't really matter. Since the SNB fixes by Ken, I didn't see any
regressions after 3 piglit runs.
Improves cairo-gl performance by 13.7733% +/- 1.74876% (n=30/32)
Improves minecraft apitrace performance by 1.03183% +/- 0.482297% (n=90).
Reduces low-resolution GLB 2.7 performance by 1.17553% +/- 0.432263% (n=88)
Reduces Lightsmark performance by 3.70246% +/- 0.322432% (n=126)
No statistically significant performance difference on unigine tropics
(n=10)
No statistically significant performance difference on openarena (n=755)
The two apps that are hurt happen to include stalls on busy buffer
objects, so I think this is an effect of missing out on an opportune
flush.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
Matt Turner [Tue, 5 Nov 2013 21:56:14 +0000 (13:56 -0800)]
build: Build gen_matypes and matypes.h from src/mesa.
Reviewed-by: Eric Anholt <eric@anholt.net>
Matt Turner [Tue, 5 Nov 2013 21:53:45 +0000 (13:53 -0800)]
build: Change HAVE_X86_ASM to mean x86 or x86-64 asm.
I want a conditional that says generally "we have x86 assembly" in the
next patch.
Reviewed-by: Eric Anholt <eric@anholt.net>
Matt Turner [Tue, 5 Nov 2013 19:20:12 +0000 (11:20 -0800)]
configure.ac: Test $asm_arch directly.
Reviewed-by: Eric Anholt <eric@anholt.net>
Fredrik Höglund [Tue, 5 Nov 2013 18:35:17 +0000 (19:35 +0100)]
docs: Mark ARB_vertex_attrib_binding as done, update relnotes
Reviewed-by: Eric Anholt <eric@anholt.net>
Fredrik Höglund [Tue, 5 Nov 2013 18:34:16 +0000 (19:34 +0100)]
mesa: Enable ARB_vertex_attrib_binding
Reviewed-by: Eric Anholt <eric@anholt.net>
Fredrik Höglund [Thu, 11 Apr 2013 14:49:44 +0000 (16:49 +0200)]
mesa: Optimize rebinding the same VBO
Check if the new buffer object has the same name as the current
buffer object before looking it up.
Reviewed-by: Eric Anholt <eric@anholt.net>
Fredrik Höglund [Thu, 4 Apr 2013 17:55:50 +0000 (19:55 +0200)]
mesa: Handle zero-stride arrays in _mesa_update_array_max_element()
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Fredrik Höglund [Thu, 4 Apr 2013 20:15:13 +0000 (22:15 +0200)]
mesa: Add Get* support for ARB_vertex_attrib_binding
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Fredrik Höglund [Tue, 9 Apr 2013 18:54:25 +0000 (20:54 +0200)]
mesa: Add ARB_vertex_attrib_binding
update_array() and update_array_format() are changed to update the new
attrib and binding states, and the client arrays become derived state.
Reviewed-by: Eric Anholt <eric@anholt.net>
Fredrik Höglund [Tue, 9 Apr 2013 18:44:58 +0000 (20:44 +0200)]
glapi: Add infrastructure for ARB_vertex_attrib_binding
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Fredrik Höglund [Fri, 1 Nov 2013 18:09:58 +0000 (19:09 +0100)]
mesa: Make handle_bind_buffer_gen() non-static
...and rename it to _mesa_bind_buffer_gen().
This is so the function can be called from _mesa_BindVertexBuffer().
This patch also adds a caller parameter so we can report the right
entry point in error messages.
Based on a patch by Eric Anholt.
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Fredrik Höglund [Wed, 3 Apr 2013 20:08:47 +0000 (22:08 +0200)]
mesa: Rename gl_array_object::VertexAttrib to _VertexAttrib
This will become derived state as part of the ARB_vertex_attrib_binding
support.
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Fredrik Höglund [Wed, 3 Apr 2013 19:47:44 +0000 (21:47 +0200)]
mesa: Split out the format code from update_array()
Split out the code for updating the array format into a new function
called update_array_format(). This function will be called by both
update_array() and the new glVertexAttrib*Format() entry points in
ARB_vertex_attrib_binding.
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Fredrik Höglund [Sat, 11 May 2013 17:23:46 +0000 (19:23 +0200)]
mesa: Restore gl_array_object::NewArray
This will be used by the ARB_vertex_attrib_binding implementation.
This reverts commit
db38e9a0e179441f59274f6f2a751912c29872e2.
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Kenneth Graunke [Wed, 6 Nov 2013 08:33:14 +0000 (00:33 -0800)]
i965: Use has_surface_tile_offset in depth/stencil alignment workaround.
Currently, has_surface_tile_offset is equivalent to gen == 4 && !is_g4x.
We already use it for related checks in brw_wm_surface_state.c, so it
makes sense to use it here too. It's simpler and more future-proof.
Broadwell also lacks surface tile offsets. With this patch, I won't
need to update any generation checking; I can simply not set the flag.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Fabio Pedretti [Wed, 6 Nov 2013 09:55:28 +0000 (10:55 +0100)]
gallium: fix build on GNU/kFreeBSD
Patch from Debian package
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Andreas Boll <andreas.boll.dev@gmail.com>
Fabio Pedretti [Wed, 6 Nov 2013 09:55:27 +0000 (10:55 +0100)]
configure.ac: fix build on GNU/kFreeBSD
Based on existing patch from Debian package.
Debian bug: http://bugs.debian.org/524690
Reviewed-by: Andreas Boll <andreas.boll.dev@gmail.com>
Fabio Pedretti [Tue, 5 Nov 2013 15:51:19 +0000 (16:51 +0100)]
mesa: add arm64 support
Patch from Ubuntu package
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Andreas Boll <andreas.boll.dev@gmail.com>
Fabio Pedretti [Tue, 5 Nov 2013 11:49:56 +0000 (12:49 +0100)]
r600/compute: silence unused var warning
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Paul Berry [Tue, 5 Nov 2013 02:48:17 +0000 (18:48 -0800)]
i965/gen6: Don't allow SIMD16 dispatch in 4x PERPIXEL mode with computed depth.
Hardware docs say we can only use SIMD8 dispatch in this condition.
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
Matt Turner [Tue, 5 Nov 2013 19:21:53 +0000 (11:21 -0800)]
configure.ac: Drop no-out-of-tree notice.
We do support out of tree builds now.
Tested-by: Colin Walters <walters@verbum.org>