Avoid the cumbersome lookup through the alpha gradient texture and
simply multiply the incoming opacity value. The next step will be to
reduce the number of floats required per vertex.
Now that we have removed the primary user of the alpha solid cache, it
may be time to retire that as well.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This gives a small performance increase when operating with rectangles,
which is reasonably frequent.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This gives a small performance increase when operating with rectangles,
which is reasonably frequent.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
If we forcibly update the outputs to be on, then the core will not issue
its on DPMS event and we miss out on updating the CRTC bookkeeping in
sna_crtc_dpms(). So we need to update the flag on the CRTC as we
manipulate the outputs during modesetting.
References: https://bugs.freedesktop.org/show_bug.cgi?id=52142
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
We cannot simply ignore the presence of CPU damage with IGNORE_CPU but
must remember to discard it.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
If we are copying to ourselves, we have to regularly flush the render
cache at which point the RENDER pipeline is slower than the BLT
pipeline.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
In order to construct programs on the fly to cater for the combinatorial
number of possible shaders, we need an assembler, whilst also taking the
opportunity to remove some of the inefficiencies and mistakes from the
current shaders.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
We should be asserting at the point that we insert the invalid operation
into the batch, but asserting upon submitting the batch is a useful
failsafe.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Only warn about a hung GPU if we encounter an EIO during operation, but
don't warn if we set wedged during initialisation based on unsupported
hw or user request.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Run the risk of a GPU hang (it shouldn't endanger the entire machine
normally) and let the user elect to disable it through
Option "NoAccel" "true"
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
The previous implementation is to create a new textured
pixmap based on the newly created pixmap's buffer object.
This is not efficient, as we already created it when we
call CreatePixmap. We can just exchange the underlying
texture/image buffers by calling intel_glamor_exchange_buffers().
And this commit seems also fix a weird rendering problem
when working with compiz/mutter.
Signed-off-by: Zhigang Gong <zhigang.gong@linux.intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
So that if we have a flexible WAIT_FOR_EVENT that can go on either
pipeline, we can choose our preferred pipeline for DRI.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Somewhere along the way it seems that IVB GT1 was reduced to only allow
a maximum of 48 threads, as revealed in the lastest bspecs.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=52473
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Similar to how SandyBridge behaves, I had hoped that with IvyBridge they
would have made the pipelined operation actually pipelined, but alas.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=52473
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This allows us to continue to map a GPU bo and operate inplace if we are
force to create a GPU bo for a compositor.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
We may mark the scanout as detached when all outputs are turned off (for
example during rotation) and so in the subsequent block handler we need
to be careful in case we are handling a detached shadow.
Reported-by: chr.ohm@gmx.net
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=52514
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
With a DRI compositor we have to flush the output after every request,
which leads to major inefficiencies. This can be mitigated slightly if
we know we will have to upload shortly, which we track using the pixmap
flush flag.
In particular PutImage is meant to upload inplace to an active DRI
buffer, however this was accidentally dropped in
commit a253c95ec6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Sun Jul 15 13:32:35 2012 +0100
sna: Prefer uploads to be staged in snoopable bo
Performace of putimage500 on ivb i7-3720qm:
bare: 4610
gnome-shell: 3000
patched: 3390
Reported-by: Michael Larabel <Michael@phoronix.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
I think the likelihood of a new product being launched based on a 8xx
design is remote enough not to worry about.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>