mesa.git
9 years agowinsys/amdgpu: automake: remove missing headers
Emil Velikov [Thu, 20 Aug 2015 21:55:49 +0000 (22:55 +0100)]
winsys/amdgpu: automake: remove missing headers

The files are not referenced in any other place in whole of
mesa. They are likely remnants of the early development stage.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agoautomake: build all drivers but vc4 during distcheck
Emil Velikov [Thu, 20 Aug 2015 21:52:49 +0000 (22:52 +0100)]
automake: build all drivers but vc4 during distcheck

vc4 conflicts with ilo, when build on x86 as it's build for emulation
purposes. In that mode a i965-like symbol is exported by vc4, which
conflicts with the ilo one in the gallium-dri megadriver.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agoandroid: enable amdgpu winsys in radeonsi driver
Mauro Rossi [Tue, 18 Aug 2015 09:53:32 +0000 (11:53 +0200)]
android: enable amdgpu winsys in radeonsi driver

Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agoandroid: fix cflags and includes for amdgpu winsys
Mauro Rossi [Tue, 18 Aug 2015 09:53:31 +0000 (11:53 +0200)]
android: fix cflags and includes for amdgpu winsys

Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agodocs: add news item and link release notes for 10.6.5
Emil Velikov [Sat, 22 Aug 2015 10:04:11 +0000 (11:04 +0100)]
docs: add news item and link release notes for 10.6.5

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agodocs: add sha256 checksums for 10.6.5
Emil Velikov [Sat, 22 Aug 2015 10:00:47 +0000 (11:00 +0100)]
docs: add sha256 checksums for 10.6.5

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
(cherry picked from commit fa34225167396008e75e93f23696666caba8a7bf)

9 years agodocs: add release notes for 10.6.5
Emil Velikov [Sat, 22 Aug 2015 09:20:54 +0000 (10:20 +0100)]
docs: add release notes for 10.6.5

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
(cherry picked from commit a43b3dd99bd4c114d0f3e90f4fd4792164fe7539)

9 years agoi965: Move control flush into pipelined conditional render
Chris Wilson [Fri, 21 Aug 2015 14:28:22 +0000 (15:28 +0100)]
i965: Move control flush into pipelined conditional render

The nv_conditional_render piglits were sporadically failing. Moving
the control flush from the write and placing it just before the read
was sufficient to make the piglits pass a 1000/1000 times. The bspec
says that the flush enable bit "waits until all previous writes of
immediate data from post sync circles are complete before executing the
next command" - the operative word being previous!

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90691
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Neil Roberts <neil@linux.intel.com>
Cc: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
9 years agovc4: Actually allow math results to allocate into r4.
Eric Anholt [Fri, 21 Aug 2015 17:57:24 +0000 (10:57 -0700)]
vc4: Actually allow math results to allocate into r4.

I switched us to tracking whether the results *could* go to r4, but then
didn't make a separate register class for the class bits that included r4.
Switch the "any" class to actually be "any", and name the "any but r4"
class more appropriately.

total instructions in shared programs: 96798 -> 94680 (-2.19%)
instructions in affected programs:     62736 -> 60618 (-3.38%)

9 years agovc4: Fold the 16-bit integer pack into the instructions generating it.
Eric Anholt [Fri, 21 Aug 2015 07:08:13 +0000 (00:08 -0700)]
vc4: Fold the 16-bit integer pack into the instructions generating it.

total instructions in shared programs: 97580 -> 96798 (-0.80%)
instructions in affected programs:     52826 -> 52044 (-1.48%)

9 years agovc4: Reuse QPU dumping for packing bits in QIR.
Eric Anholt [Fri, 21 Aug 2015 07:04:36 +0000 (00:04 -0700)]
vc4: Reuse QPU dumping for packing bits in QIR.

9 years agovc4: Make _dest variants of qir ALU helpers to provide an explicit dest.
Eric Anholt [Wed, 19 Aug 2015 03:26:05 +0000 (20:26 -0700)]
vc4: Make _dest variants of qir ALU helpers to provide an explicit dest.

9 years agovc4: Use the SSA defs list for figuring out eligible MOVs for copy prop.
Eric Anholt [Fri, 21 Aug 2015 16:22:32 +0000 (09:22 -0700)]
vc4: Use the SSA defs list for figuring out eligible MOVs for copy prop.

I thought I'd converted this over previously.  It was copy propagating
MOVs badly with the new destination packing flags.

9 years agost/nine: Always use user constant buffers
Krzysztof Sobiecki [Thu, 20 Aug 2015 21:19:30 +0000 (23:19 +0200)]
st/nine: Always use user constant buffers

We had several reports of users hitting bugs
with the other path to upload constants,
and switching to the user constant buffer
path solves the bugs.

User constant buffers are expected to be slower
for Nvidia cards, so ideally this patch should be
reverted when the path is fixed.

Reviewed-by: Axel Davy <axel.davy@ens.fr>
Signed-off-by: Krzysztof Sobiecki <sobkas@gmail.com>
9 years agost/nine: Silent warning in nine_ff
Axel Davy [Sun, 16 Aug 2015 11:11:50 +0000 (13:11 +0200)]
st/nine: Silent warning in nine_ff

release build was complaining

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Silent warning in sm1_declusage_to_tgsi
Axel Davy [Sun, 16 Aug 2015 11:11:27 +0000 (13:11 +0200)]
st/nine: Silent warning in sm1_declusage_to_tgsi

release build was complaining

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Silent warning in NineCubeTexture9_ctor
Axel Davy [Sun, 16 Aug 2015 10:58:41 +0000 (12:58 +0200)]
st/nine: Silent warning in NineCubeTexture9_ctor

The compiler was complaining the value may be uninitialised
when it is used (which is wrong). Initialize to NULL to silent
the warning.

9 years agost/nine: Silent warning in update_vertex_buffer
Axel Davy [Sun, 16 Aug 2015 10:57:40 +0000 (12:57 +0200)]
st/nine: Silent warning in update_vertex_buffer

There was an unused variable

9 years agost/nine: Catch setting the same shader
Axel Davy [Sun, 9 Aug 2015 17:06:01 +0000 (19:06 +0200)]
st/nine: Catch setting the same shader

This is quite rare that an app does set again
the same shaders, but it isn't an expensive check
either.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Avoid Constant upload when there is no change
Axel Davy [Sun, 9 Aug 2015 17:02:02 +0000 (19:02 +0200)]
st/nine: Avoid Constant upload when there is no change

It is very common for d3d9 apps to set again the constants
they need before every draw call, even if nothing changed.

Since we are mostly gpu bound, it is better to check
for change, and upload constants again (and thus use
gpu bandwith) only if the constants changed.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Fix the number of texture stages
Axel Davy [Sat, 25 Jul 2015 15:54:26 +0000 (17:54 +0200)]
st/nine: Fix the number of texture stages

The number of texture stages is 8.

'tex_stage' array was too big, and thus
the checks with 'Elements(state->ff.tex_stage)' were passing,
causing some invalid API calls to pass, and crash because of
out of bounds write since bumpmap_vars was just the correct size.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Use CSO cache for sampler views
Axel Davy [Thu, 14 May 2015 17:24:57 +0000 (19:24 +0200)]
st/nine: Use CSO cache for sampler views

The CSO cache unbinds views that are not needed anymore,
which we don't do.
It checks for change before committing the views.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Calculate dummy sampler state only once
Axel Davy [Thu, 14 May 2015 17:10:41 +0000 (19:10 +0200)]
st/nine: Calculate dummy sampler state only once

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Better check shader constant limits
Axel Davy [Thu, 14 May 2015 13:42:50 +0000 (15:42 +0200)]
st/nine: Better check shader constant limits

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Remove NINED3DRS_ZBIASSCALE
Axel Davy [Thu, 13 Aug 2015 17:24:02 +0000 (19:24 +0200)]
st/nine: Remove NINED3DRS_ZBIASSCALE

It wasn't giving the expected result.

This fixes some object being transparents
in games like FEAR.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Implement special DOTPRODUCT3 behaviour
Axel Davy [Sat, 16 May 2015 22:22:33 +0000 (00:22 +0200)]
st/nine: Implement special DOTPRODUCT3 behaviour

Taken from wine tests

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Implement ff vertex data passthrough
Axel Davy [Sat, 16 May 2015 10:14:54 +0000 (12:14 +0200)]
st/nine: Implement ff vertex data passthrough

Fixes Wine tests

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Change nine_state_update order
Axel Davy [Fri, 15 May 2015 23:24:29 +0000 (01:24 +0200)]
st/nine: Change nine_state_update order

nine_update_state called every draw call.

This patch attemps to change the order
of the checks to have better control flow

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Programmable ps D3DTTSS_PROJECTED support
Axel Davy [Wed, 13 May 2015 23:27:33 +0000 (01:27 +0200)]
st/nine: Programmable ps D3DTTSS_PROJECTED support

The implementation used Wine tests for conformance

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Complete ff texture transform implementation
Axel Davy [Tue, 12 May 2015 21:49:54 +0000 (23:49 +0200)]
st/nine: Complete ff texture transform implementation

Wine tests were used to get it right.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Change a few advertised caps
Axel Davy [Sat, 15 Aug 2015 20:52:19 +0000 (22:52 +0200)]
st/nine: Change a few advertised caps

There were flags all sm3 cards do advertise,
and we weren't.
Some games can trigger buggy rendering path
if the caps are not what they expect.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Advertise Fog flags
Axel Davy [Fri, 8 May 2015 17:50:15 +0000 (19:50 +0200)]
st/nine: Advertise Fog flags

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Revert to userbuf path when needed
Axel Davy [Sun, 16 Aug 2015 12:59:52 +0000 (14:59 +0200)]
st/nine: Revert to userbuf path when needed

Automatically switch to userbuf path when
we would need to upload fog or bumpmat
constants

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Finish Fog implementation
Axel Davy [Tue, 12 May 2015 19:56:04 +0000 (21:56 +0200)]
st/nine: Finish Fog implementation

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Rework shader states
Axel Davy [Mon, 11 May 2015 19:32:57 +0000 (21:32 +0200)]
st/nine: Rework shader states

Separate state setting and commit
Changes how the shader key is computed

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Remove some useless variables
Axel Davy [Sun, 10 May 2015 09:42:25 +0000 (11:42 +0200)]
st/nine: Remove some useless variables

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Reviewed-by: David Heidelberg <david@ixit.cz>
9 years agost/nine: Fix nine_ff_ps_key padding
Axel Davy [Sun, 10 May 2015 10:01:10 +0000 (12:01 +0200)]
st/nine: Fix nine_ff_ps_key padding

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Begin programmable shader fog support
Axel Davy [Fri, 8 May 2015 17:48:45 +0000 (19:48 +0200)]
st/nine: Begin programmable shader fog support

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Fix fixed function fog support
Axel Davy [Fri, 8 May 2015 17:26:20 +0000 (19:26 +0200)]
st/nine: Fix fixed function fog support

Previous code had only a subcase of fog working right.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Rework ff constant buffers
Axel Davy [Tue, 24 Mar 2015 10:06:22 +0000 (11:06 +0100)]
st/nine: Rework ff constant buffers

Always use a user constant buffer for ff.
It means we have to:
. commit the user constant buffer for ff when we use it
. commit back the non-ff constant buffer when we stop using it

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Rework constant buffer state handling
Axel Davy [Tue, 24 Mar 2015 09:47:35 +0000 (10:47 +0100)]
st/nine: Rework constant buffer state handling

We have two paths:
. One that uses a fixed constant buffer, and updates it when needed
. One that uses a user constant buffer, and uploads it when needed.

This patch separates the preparation of the constant buffer
and the commit.

It also removes NineDevice9_RestoreNonCSOState, which was
used to restore all states. Instead the commit of the constant
buffer is moved to nine_state, and the other field settings
moved to other functions where more appropriate.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Rework blend states
Axel Davy [Tue, 24 Mar 2015 09:10:25 +0000 (10:10 +0100)]
st/nine: Rework blend states

Separate state preparation and state commit

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Improve fallback when driver doesn't support user buffers.
Axel Davy [Sat, 3 Jan 2015 10:36:09 +0000 (11:36 +0100)]
st/nine: Improve fallback when driver doesn't support user buffers.

For now the path updated is only used by Amd drivers, but a later
patch will make it used by all drivers. Some drivers like llvmpipe
doesn't support the uploading of constants from user buffers, so improve
the path to work for all drivers

Inspired from the gl state tracker.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Avoid useless updates in SetSamplerState
Axel Davy [Sun, 15 Feb 2015 15:22:43 +0000 (16:22 +0100)]
st/nine: Avoid useless updates in SetSamplerState

Check for redundant settings

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Reviewed-by: David Heidelberg <david@ixit.cz>
9 years agost/nine: Rework rasterizer states
Axel Davy [Tue, 24 Mar 2015 09:16:59 +0000 (10:16 +0100)]
st/nine: Rework rasterizer states

Separate state preparation and state commit

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Reorder DSA state settings
Axel Davy [Fri, 15 May 2015 21:52:09 +0000 (23:52 +0200)]
st/nine: Reorder DSA state settings

Separate state preparation and state commit

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Reorder nine_state.
Axel Davy [Tue, 24 Mar 2015 08:35:18 +0000 (09:35 +0100)]
st/nine: Reorder nine_state.

Instead of mixing state preparation (filling pipe_****)
and state commit (pipe->set_*****),
begin doing so in two separate functions.

This will allow to implement efficient Stateblocks,
and eventually lead to optimisation where the complete
pipe_*** structure is only partially updated.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Remove group_mask argument from nine_update_state
Axel Davy [Sun, 15 Feb 2015 08:19:16 +0000 (09:19 +0100)]
st/nine: Remove group_mask argument from nine_update_state

It was only used to discriminate update framebuffer vs update
everything. Instead use two functions.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Implement TEXBEM,TEXBEML and BEM
Tiziano Bacocco [Fri, 30 Jan 2015 19:10:38 +0000 (20:10 +0100)]
st/nine: Implement TEXBEM,TEXBEML and BEM

Signed-off-by: Tiziano Bacocco <tizbac2@gmail.com>
9 years agost/nine: Fix use of uninitialized values
Patrick Rudolph [Sun, 17 May 2015 10:46:42 +0000 (12:46 +0200)]
st/nine: Fix use of uninitialized values

Set all values to 0 after allocation. Found using valgrind.

Reviewed-by: Axel Davy <axel.davy@ens.fr>
Signed-off-by: Patrick Rudolph <siro@das-labor.org>
9 years agost/nine: Prevent possible crash
Patrick Rudolph [Sat, 16 May 2015 17:47:00 +0000 (19:47 +0200)]
st/nine: Prevent possible crash

In case NineBaseTexture9_ctor returns an error
This->surfaces[l] might be NULL.

Reviewed-by: Axel Davy <axel.davy@ens.fr>
Signed-off-by: Patrick Rudolph <siro@das-labor.org>
9 years agost/nine: Return correct error codes in NineDevice9_Reset
Patrick Rudolph [Tue, 19 May 2015 18:18:29 +0000 (20:18 +0200)]
st/nine: Return correct error codes in NineDevice9_Reset

Allow more than two errors, and return D3DERR_INVALIDCALL
for failed display resolution changes.

Reviewed-by: Axel Davy <axel.davy@ens.fr>
Signed-off-by: Patrick Rudolph <siro@das-labor.org>
9 years agost/nine: Fail on D3DUSAGE_DYNAMIC for D3DPOOL_SCRATCH textures
Patrick Rudolph [Wed, 13 May 2015 17:51:30 +0000 (19:51 +0200)]
st/nine: Fail on D3DUSAGE_DYNAMIC for D3DPOOL_SCRATCH textures

Texture with pool D3DPOOL_SCRATCH and D3DPOOL_MANAGED
cannot be used with flag D3DUSAGE_DYNAMIC.

Signed-off-by: Patrick Rudolph <siro@das-labor.org>
9 years agost/nine: Fix Lock Checks for Compressed textures
Axel Davy [Thu, 14 May 2015 15:22:26 +0000 (17:22 +0200)]
st/nine: Fix Lock Checks for Compressed textures

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Impose restrictions on DXTN texture sizes
Axel Davy [Thu, 14 May 2015 15:01:40 +0000 (17:01 +0200)]
st/nine: Impose restrictions on DXTN texture sizes

This is the expected behaviour.

Fixes wine tests.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Reviewed-by: David Heidelberg <david@ixit.cz>
9 years agost/nine: Return NULL pointer in lock error cases
Patrick Rudolph [Wed, 13 May 2015 17:43:04 +0000 (19:43 +0200)]
st/nine: Return NULL pointer in lock error cases

Tests showed, that in case of errors, the pBits pointer is set to NULL.
The pBits field isn't set to NULL in case of an already locked object.

Reviewed-by: Axel Davy <axel.davy@ens.fr>
Signed-off-by: Patrick Rudolph <siro@das-labor.org>
9 years agost/nine: Fix resource SetPriority/GetPriority
Patrick Rudolph [Wed, 13 May 2015 05:19:11 +0000 (07:19 +0200)]
st/nine: Fix resource SetPriority/GetPriority

Return 0 for non MANAGED textures and surfaces.
Fixes failing wine d3d9 tests device.c test_resource_priority.

Reviewed-by: Axel Davy <axel.davy@ens.fr>
Signed-off-by: Patrick Rudolph <siro@das-labor.org>
9 years agost/nine: Clean GetPrivateData
Patrick Rudolph [Tue, 12 May 2015 18:28:17 +0000 (20:28 +0200)]
st/nine: Clean GetPrivateData

Move the assert to return error codes in the correct order.
Always set the pSizeOfData to the required buffer size.
Fixes failing wine test device.c test_private_data()

Reviewed-by: Axel Davy <axel.davy@ens.fr>
Signed-off-by: Patrick Rudolph <siro@das-labor.org>
9 years agost/nine: Allow lock coordinates outside range
Patrick Rudolph [Mon, 20 Apr 2015 17:26:55 +0000 (19:26 +0200)]
st/nine: Allow lock coordinates outside range

This fixes wine test device.c test_lockrect_invalid()

Mimic WindowsXp behaviour and allow negative values in the rectangle passed.
Add comment to point out behaviour used.

Reviewed-by: Axel Davy <axel.davy@ens.fr>
Signed-off-by: Patrick Rudolph <siro@das-labor.org>
9 years agost/nine: Fix GenerateMipSubLevels potential crash
Patrick Rudolph [Tue, 12 May 2015 18:07:09 +0000 (20:07 +0200)]
st/nine: Fix GenerateMipSubLevels potential crash

For the case of D3DPOOL_MANAGED textures, This->base.resource can be NULL
at the start of the function. In This case, UploadSelf will take care
of the defining. Assign resource after the UploadSelf call
to prevent NULL pointer exception.

Reviewed-by: Axel Davy <axel.davy@ens.fr>
Signed-off-by: Patrick Rudolph <siro@das-labor.org>
9 years agost/nine: Fix FillColor Flag check
Axel Davy [Sat, 16 May 2015 16:40:02 +0000 (18:40 +0200)]
st/nine: Fix FillColor Flag check

IT is better check if the surface was created with RT flag,
instead of checking capability (llvmpipe was complaining)

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Fix StretchRect checks
Axel Davy [Thu, 7 May 2015 23:29:35 +0000 (01:29 +0200)]
st/nine: Fix StretchRect checks

Fixes Wine tests

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Implement EvictManagedResources
Axel Davy [Fri, 8 May 2015 14:54:53 +0000 (16:54 +0200)]
st/nine: Implement EvictManagedResources

EvictManagedResources is used by apps to free
the gpu memory of MANAGED textures (which have
a cpu memory backing)

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Track managed textures
Axel Davy [Wed, 6 May 2015 22:03:21 +0000 (00:03 +0200)]
st/nine: Track managed textures

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Only update dirty rect for UpdateTexture
Axel Davy [Tue, 5 May 2015 18:40:12 +0000 (20:40 +0200)]
st/nine: Only update dirty rect for UpdateTexture

UpdateTexture is supposed to optimise by uploading only for the
dirty region of the source (d3d9 doc, wine tests).
This patch adds the behaviour for surfaces, but not entirely for
volumes.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Textures start dirty
Axel Davy [Sun, 3 May 2015 22:17:09 +0000 (00:17 +0200)]
st/nine: Textures start dirty

According to the spec all textures start
dirty.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Track dirty region for SYSTEMMEM too
Axel Davy [Sun, 3 May 2015 21:53:48 +0000 (23:53 +0200)]
st/nine: Track dirty region for SYSTEMMEM too

Dirty regions should be tracked for both MANAGED
and SYSTEMMEM.
Until now we didn't bother to track for SYSTEMMEM,
because we hadn't implemented using the dirty region
to avoid some copies

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Add missing BASETEX_REGISTER_UPDATE calls
Axel Davy [Sun, 3 May 2015 21:46:14 +0000 (23:46 +0200)]
st/nine: Add missing BASETEX_REGISTER_UPDATE calls

If the texture is bound and dirty_mip is true,
BASETEX_REGISTER_UPDATE adds the texture to the list
of things to update before the next draw call.

Some calls to it were missing.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: SetAutoGenFilterType should regenerate the sublevels
Axel Davy [Sun, 3 May 2015 21:28:25 +0000 (23:28 +0200)]
st/nine: SetAutoGenFilterType should regenerate the sublevels

It should regenerate the sublevels according to the spec

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Simplify NineVolume9_CopyVolume
Axel Davy [Sun, 3 May 2015 20:57:13 +0000 (22:57 +0200)]
st/nine: Simplify NineVolume9_CopyVolume

We had only one usage for this function.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Split NineSurface9_CopySurface
Axel Davy [Sun, 3 May 2015 20:40:38 +0000 (22:40 +0200)]
st/nine: Split NineSurface9_CopySurface

NineSurface9_CopySurface was supporting more cases than what
we needed, and doing checks that were innapropriate for
some NineSurface9_CopySurface use cases.

This patch splits it into two for the two use cases, and moves
the checks to the caller.

This patch also adds a few checks to NineDevice9_UpdateSurface

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Simplify Volume9 dirty region tracking
Axel Davy [Tue, 5 May 2015 21:51:24 +0000 (23:51 +0200)]
st/nine: Simplify Volume9 dirty region tracking

Similar to what was done for Surface9, track the dirty region
only in VolumeTexture9.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agoutil/u_blitter: implement alpha blending for pipe->blit
Marek Olšák [Sat, 8 Nov 2014 12:02:47 +0000 (13:02 +0100)]
util/u_blitter: implement alpha blending for pipe->blit

9 years agogallium: Add blending to pipe blit
Christoph Bumiller [Sat, 31 May 2014 21:13:24 +0000 (23:13 +0200)]
gallium: Add blending to pipe blit

This type of blending is used for gallium nine software cursor

Signed-off-by: David Heidelberg <david@ixit.cz>
9 years agost/nine: Revert to sw cursor in case of failure to set hw cursor
Axel Davy [Sat, 21 Mar 2015 21:28:59 +0000 (22:28 +0100)]
st/nine: Revert to sw cursor in case of failure to set hw cursor

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Reviewed-by: David Heidelberg <david@ixit.cz>
9 years agost/nine: Do not call ID3DPresent_GetCursorPos for sw cursor
Axel Davy [Sat, 21 Mar 2015 21:23:56 +0000 (22:23 +0100)]
st/nine: Do not call ID3DPresent_GetCursorPos for sw cursor

For sw cursor we do not tell wine the cursor position (the app
tells us directly). We shouldn't use ID3DPresent_GetCursorPos.

device->cursor.pos already contains the coordinates the app
gave us.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Reviewed-by: David Heidelberg <david@ixit.cz>
9 years agost/nine: Force hw cursor for Windowed mode
Axel Davy [Sun, 22 Mar 2015 17:48:07 +0000 (18:48 +0100)]
st/nine: Force hw cursor for Windowed mode

According to the spec, Windowed mode must
have hw cursor

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Reviewed-by: David Heidelberg <david@ixit.cz>
9 years agost/nine: Hide hardware cursor when we don't use it
Axel Davy [Sat, 21 Mar 2015 21:21:14 +0000 (22:21 +0100)]
st/nine: Hide hardware cursor when we don't use it

We have either hardware cursor or software cursor.
When we use software cursor, we should hide the hardware
cursor.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Reviewed-by: David Heidelberg <david@ixit.cz>
9 years agost/nine: fix D3DRS_DITHERENABLE wrong state group
Axel Davy [Sun, 15 Feb 2015 20:30:44 +0000 (21:30 +0100)]
st/nine: fix D3DRS_DITHERENABLE wrong state group

D3DRS_DITHERENABLE was assigned to the rasterizer state
group, but it was used for the blend group.

Assign it to the blend group.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Account POINTSIZE_MIN and POINTSIZE_MAX for point size
Patrick Rudolph [Sun, 19 Apr 2015 08:14:30 +0000 (10:14 +0200)]
st/nine: Account POINTSIZE_MIN and POINTSIZE_MAX for point size

When using D3DRS_POINTSIZE make sure the value is at least
D3DRS_POINTSIZE_MIN but not greater than D3DRS_POINTSIZE_MAX.

Fixes some Wine tests.

Reviewed-by: Axel Davy <axel.davy@ens.fr>
Signed-off-by: Patrick Rudolph <siro@das-labor.org>
9 years agost/nine: Align texture memory
Patrick Rudolph [Tue, 12 May 2015 05:27:37 +0000 (07:27 +0200)]
st/nine: Align texture memory

Align texture memory on 32 byte boundry to allow
SSE/AVX memcpy to work on locked rects.

This fixes some crashes with games using SSE.

Reviewed-by: David Heidelberg <david@ixit.cz>
Reviewed-by: Axel Davy <axel.davy@ens.fr>
Signed-off-by: Patrick Rudolph <siro@das-labor.org>
9 years agost/nine: Always set point_quad_rasterization to 1
Axel Davy [Sat, 16 May 2015 16:41:51 +0000 (18:41 +0200)]
st/nine: Always set point_quad_rasterization to 1

Both Points and Point Sprites are rasterized like quads,
according to d3d9 doc and gallium rasterizer doc.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
9 years agost/nine: Fix Swizzle for ATI2 format
Axel Davy [Sat, 16 May 2015 20:41:26 +0000 (22:41 +0200)]
st/nine: Fix Swizzle for ATI2 format

We had red and green in the wrong channels
for the ATI2 format (RGTC2).

Found thanks to wine tests.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Reviewed-by: David Heidelberg <david@ixit.cz>
9 years agotarget/d3dadapter9: Return Windows like card names
Patrick Rudolph [Mon, 25 May 2015 08:36:21 +0000 (10:36 +0200)]
target/d3dadapter9: Return Windows like card names

Add support for multiple cards and fill in Win
like card name, driver name and version info.
Use fallback for unknown vendors and unknown card names.

Reviewed-by: Axel Davy <axel.davy@ens.fr>
Signed-off-by: Patrick Rudolph <siro@das-labor.org>
9 years agost/nine: Require gcc >= 4.6
David Heidelberg [Fri, 10 Apr 2015 22:13:53 +0000 (00:13 +0200)]
st/nine: Require gcc >= 4.6

Nine code uses some C11 features, and this
leads to compile error on gcc <= 4.5

Another way would have been to use the
-fms-extensions CFLAG

Signed-off-by: David Heidelberg <david@ixit.cz>
Cc: "10.4 10.5 10.6" <mesa-stable@lists.freedesktop.org>
9 years agoglsl: fix error message when validating tcs output decls
Ilia Mirkin [Fri, 21 Aug 2015 19:08:15 +0000 (15:08 -0400)]
glsl: fix error message when validating tcs output decls

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
9 years agorelnote updates
Rob Clark [Mon, 10 Aug 2015 21:27:19 +0000 (17:27 -0400)]
relnote updates

Signed-off-by: Rob Clark <robclark@freedesktop.org>
9 years agost/mesa: pass through 4th opcode argument in bitmap/pixel visitors
Ilia Mirkin [Fri, 21 Aug 2015 00:06:50 +0000 (20:06 -0400)]
st/mesa: pass through 4th opcode argument in bitmap/pixel visitors

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.6" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
9 years agost/mesa: fix assignments with 4-operand arguments (i.e. BFI)
Ilia Mirkin [Thu, 20 Aug 2015 23:59:04 +0000 (19:59 -0400)]
st/mesa: fix assignments with 4-operand arguments (i.e. BFI)

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.6" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
9 years agoi965: allow image_size on float images
Martin Peres [Fri, 21 Aug 2015 13:25:14 +0000 (16:25 +0300)]
i965: allow image_size on float images

This got missed because the piglit test only tested int images to avoid a
combinatiorial explosion of format, targets, stages and sizes which
takes more than 5 minutes to test on nvidia's driver.

This patch also drops the IMAGE_FUNCTION_AVAIL_ATOMIC which is not applicable
to the image_size codepath but was not hurting in any way.

Signed-off-by: Martin Peres <martin.peres@linux.intel.com>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
9 years agoclover: fix llvm 3.5 build error
Zoltan Gilian [Wed, 19 Aug 2015 09:56:08 +0000 (11:56 +0200)]
clover: fix llvm 3.5 build error

There is no MDOperand in llvm 3.5.

v2: Check if kernel metadata is present to avoid crash (EdB).
v3: Second attempt to avoid crash: switch off metadata query for llvm < 3.6.

Reviewed-by: Serge Martin (EdB) <edb+mesa@sigluy.net>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
9 years agomesa: update fbo state in glTexStorage
Tapani Pälli [Thu, 20 Aug 2015 07:25:59 +0000 (10:25 +0300)]
mesa: update fbo state in glTexStorage

We have to re-validate FBOs rendering to the texture like is done
with TexImage and CopyTexImage.

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91673
Cc: "10.6" <mesa-stable@lists.freedesktop.org>
9 years agovc4: Add algebraic opt for rcp(1.0).
Eric Anholt [Wed, 19 Aug 2015 05:19:12 +0000 (22:19 -0700)]
vc4: Add algebraic opt for rcp(1.0).

We're generating rcps as part of backend lowering of the packed coordinate
in the CS, and we don't want to lower them in NIR because of the extra
newton-raphson steps in the common case.  However, GLB2.7 is moving a
vertex attribute with a 1.0 W component to the position, and that makes us
produce some silly RCPs.

total instructions in shared programs: 97590 -> 97580 (-0.01%)
instructions in affected programs:     74 -> 64 (-13.51%)

9 years agovc4: Allow unpack_8[abcd]_f's src to stay in r4.
Eric Anholt [Wed, 19 Aug 2015 05:07:47 +0000 (22:07 -0700)]
vc4: Allow unpack_8[abcd]_f's src to stay in r4.

I had QPU emit code to do it, but forgot to flag the register class.

total instructions in shared programs: 97974 -> 97590 (-0.39%)
instructions in affected programs:     25291 -> 24907 (-1.52%)

9 years agovc4: Pack the unorm-packing bits into a src MUL instruction when possible.
Eric Anholt [Wed, 19 Aug 2015 04:26:05 +0000 (21:26 -0700)]
vc4: Pack the unorm-packing bits into a src MUL instruction when possible.

Now that we do non-SSA QIR instructions, we can take a NIR SSA src that's
only used by the unorm packing and just stuff the pack bits into it.

total instructions in shared programs: 98136 -> 97974 (-0.17%)
instructions in affected programs:     4149 -> 3987 (-3.90%)

9 years agovc4: Add a QIR helper for whether the op is a MUL type.
Eric Anholt [Wed, 19 Aug 2015 04:43:42 +0000 (21:43 -0700)]
vc4: Add a QIR helper for whether the op is a MUL type.

9 years agovc4: Drop an unused algebraic op.
Eric Anholt [Wed, 19 Aug 2015 03:18:51 +0000 (20:18 -0700)]
vc4: Drop an unused algebraic op.

NIR now handles this optimization for us.

9 years agovc4: Switch QPU_PACK_SCALED to be two non-SSA instructions.
Eric Anholt [Thu, 6 Aug 2015 03:54:02 +0000 (20:54 -0700)]
vc4: Switch QPU_PACK_SCALED to be two non-SSA instructions.

total instructions in shared programs: 98159 -> 98136 (-0.02%)
instructions in affected programs:     12279 -> 12256 (-0.19%)

9 years agovc4: Make the pack-to-unorm instructions be non-SSA.
Eric Anholt [Thu, 6 Aug 2015 03:31:21 +0000 (20:31 -0700)]
vc4: Make the pack-to-unorm instructions be non-SSA.

This helps ensure that the register allocator doesn't force the later pack
operations to insert extra MOVs.

total instructions in shared programs: 98170 -> 98159 (-0.01%)
instructions in affected programs:     2134 -> 2123 (-0.52%)

9 years agovc4: Allow QIR registers to be non-SSA.
Eric Anholt [Tue, 4 Aug 2015 02:25:47 +0000 (19:25 -0700)]
vc4: Allow QIR registers to be non-SSA.

Now that we have NIR, most of the optimization we still need to do is
peepholes on instruction selection rather than general dataflow
operations.  This means we want to be able to have QIR be a lot closer to
the actual QPU instructions, just with virtual registers.  Allowing
multiple instructions writing the same register opens up a lot of
possibilities.