Age | Commit message (Collapse) | Author |
|
|
|
The r300 compiler can now emit instructions that select from the presubtract
source. A peephole optimization has been added to convert instructions like:
ADD Temp[0].x, none.1, -Temp[1].x into the INV (1 - src0) presubtract
operation.
|
|
Signed-off-by: Tilman Sauerbeck <tilman@code-monkey.de>
|
|
We would leak bo if the argument check failed.
Signed-off-by: Tilman Sauerbeck <tilman@code-monkey.de>
|
|
Signed-off-by: Tilman Sauerbeck <tilman@code-monkey.de>
|
|
This makes the 'vp1-LOG test' piglit test work.
Signed-off-by: Tilman Sauerbeck <tilman@code-monkey.de>
|
|
for evergreen I ended up using a non-contig array of states, but
this code needs a bit of fixing up to deal with that.
|
|
|
|
|
|
|
|
adds shader opcodes + assembler support (except ARL)
uses constant buffers
add interp instructions in fragment shader
adds all evergreen hw states
adds evergreen pm4 support.
this runs gears for me on my evergreen
|
|
the DDX and r600c both flush cb/db after the draw is emitted,
as long as they do that, r600g can't be different, as it races.
We end up with r600g flush, set CB, DDX set CB, flush. This
was causing misrendering on my evergreen, where sometimes the drawing
would go to an old CB.
|
|
the code should reloc correctly a single BO 3 times.
|
|
We were calling this twice so the first allocation was orphaned/leaked.
|
|
this is ported from r600c mostly, bank swizzling is real messy and I don't think
I got enough sleep last night to fully understand it.
|
|
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
This makes the 'fp1-RSQ test 2' piglit test work.
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
This splits the r600 opcodes out of the sq file and adds a wrapper
so we can convert to evergreen opcodes later without touching these functions
too much.
|
|
DX9 constants were in the constant file, and evergreen no longer support
cfile. r600/700 can also use constants in memory buffers, so add the code
(disabled for now) to enable that as precursor for evergreen.
|
|
this is step one towards evergreen support, it lets us plug in whole
new hw level states.
|
|
|
|
Less goto spaghetti.
|
|
Fixes performance regression.
|
|
|
|
|
|
|
|
Also, move some state from rasterizer struct to the scene.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This was inherently fragile as any changes to r600_states.h would also
need manual updating of all of the bits in radeon.h. Just add a simple
python script to do the conversion, its not hooked up to make at all.
This also will make adding evergreen a bit easier.
|
|
We end up referencing the new surf and derefing the old surface which
is a copy of the pointer to the new surf. So just bump the ref count directly.
|
|
Need to remove from context as well.
|
|
|
|
|
|
nv50 should switch to rules-ng-ng too at some point.
The classic Mesa Nouveau driver also includes a copy of nouveau_class.h,
and should convert to rules-ng-ng too and remove it.
|
|
|
|
This is the new register generation toolkit in use by nouveau.
As far as I know, this is the best register description toolkit in
existence, and you should use it too for your hardware :)
Thanks to Marcin Kościelnicki for inventing it and performing
invaluable reverse engineering work of nVidia chips.
|
|
|
|
Thanks for Dave Airlie and Jerome Glisse for their code which made
me realize I need this too.
|
|
Hardware sets it to 0, so we add an ADD to put an 1 there if the
application really wants the alpha channel.
|
|
Completely untested, since Mesa apparently never uses this currently.
In particular, it might not work with scalar slot op.
|
|
The old swtnl code was broken by the new shader linkage support for
GLSL.
This is a rewrite of swtnl support, which should instead work properly,
be faster and more closer to the much more tested hardware pipeline.
|