Age | Commit message (Collapse) | Author |
|
Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
|
|
Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
|
|
We were calling this twice so the first allocation was orphaned/leaked.
|
|
libmesagallium.a that this state tracker will be linked to expects
OpenGL's _glapi_table. That is, it expects libGL.so instead of
libGLESv1_CM.so or libGLESv2.so. As there is no clean way to know the
shared library the app links to, use the api as a simple check. It
might be as well to simply remove this function call though.
|
|
|
|
Make st/dri screens capable of creating OpenGL ES and
OpenGL ES2 contexts.
TODO: Figure out the "get_current" problem with multiple
st_api's for real.
(s/API_OPENGLES1/API_OPENGLES/ by Chia-I Wu)
|
|
If the caller requests a GLES context, don't silently create
a desktop GL context in its place.
|
|
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.
|
|
Check MESA_LLVM and link to LLVM as other targets do.
|
|
|
|
Less goto spaghetti.
|
|
Fixes performance regression.
|
|
|
|
|
|
|
|
Also, move some state from rasterizer struct to the scene.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
That file has been replaced by tgsi.rst.
Signed-off-by: José Fonseca <jfonseca@vmware.com>
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
Intuition != mathematics, so this time I actually worked out the right
formula for first order approximation of perspective interpolation.
Ironically, per quad divide actually makes things slower when compared
with per pixel divide -- probably because the divide hardware unit is
rarely used, whereas the multiply unit is typically already saturated
and the first order approximation imply more multiplications.
|
|
These are the non-trivial conversions that this function recognizes,
which was produced by u_format_compatible_test.c:
b8g8r8a8_unorm -> b8g8r8x8_unorm
a8r8g8b8_unorm -> x8r8g8b8_unorm
b5g5r5a1_unorm -> b5g5r5x1_unorm
b4g4r4a4_unorm -> b4g4r4x4_unorm
l8_unorm -> r8_unorm
i8_unorm -> l8_unorm
i8_unorm -> a8_unorm
i8_unorm -> r8_unorm
l16_unorm -> r16_unorm
z24_unorm_s8_uscaled -> z24x8_unorm
s8_uscaled_z24_unorm -> x8z24_unorm
r8g8b8a8_unorm -> r8g8b8x8_unorm
a8b8g8r8_srgb -> x8b8g8r8_srgb
b8g8r8a8_srgb -> b8g8r8x8_srgb
a8r8g8b8_srgb -> x8r8g8b8_srgb
a8b8g8r8_unorm -> x8b8g8r8_unorm
r10g10b10a2_uscaled -> r10g10b10x2_uscaled
r10sg10sb10sa2u_norm -> r10g10b10x2_snorm
State trackers and pipe drivers should be updated to take advantage of
this knowledge, e.g., in surface_copy.
|
|
Also, include the color buffer in the key. Not having it there
causes a tight knots in the logic to determine when it is OK or not
to discard previous color buffer contents.
|