Age | Commit message (Collapse) | Author |
|
|
|
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
|
|
gc2000 have minorFeatures4, document the register,
not that we know any of the bits yet...
|
|
|
|
To be tested on hardware that has this capability (gc880/gc2000).
|
|
And update documentation.
|
|
|
|
This new utility uses the gallium pipe driver to render quads
of a certain size, benchmarks the time spent and compares the
performance counters.
Also add debug flags to disable early z and supertiling respectively.
|
|
These counters disable TS after a certain number of cleared tiles,
for depth and color.
Auto-disable is enabled in the pipe_clear() function and disabled
when a new framebuffer is bound.
|
|
|
|
Also fixes alpha blending when using 16 bit render target (manifested in
kenlab).
|
|
|
|
Bypasses ZS buffer write when stencil and depth is not written.
|
|
And some documentation changes.
|
|
Number of units was wrong. This fixes shadows in quake.
|
|
whitespace only changes
|
|
|
|
|
|
Consistently use 64 bit values for handles passed from kernel.
Cast these, and any normal pointers with macros when going from/through
the kernel based on the GC ABI.
|
|
|
|
Do some experimentation with alpha blending modes.
|
|
Add xml file with basic context registers; no register
meanings figured out yet.
|
|
Having fun with the 2D engine.
Lines, blitting, stretching, filtering, palette expansion, ...
Current tests work on the cubox, which has PE10.
Still has to be tested on PE20 (which is most other vivante hardware).
There are some subtle but possibly significant differences.
|
|
RS_FLUSH seems to be TS_FLUSH -- ie, the TS_FLUSH command flushes
the internal cache of the tile status. It needs to be invoked after a
manual clear of the TS.
This solves a few corruption and (esp. blockyness) issues.
|
|
Divide the line width by two to correct line rendering.
Also update documentation.
|
|
Correct texture and RS alignment.
For multi-tiled and multi-super-tiled surfaces (for multiple pixel
pipes) a special texture format is used.
|
|
The gcreg.h from gcx contains quite some register documentation
for HI and DE (2D) state. Integrate this into our xml files
for easier reference and eventual hardware documentation generation.
This may help anyone working on a 2D driver.
|
|
According to the gallium documentation when flat shading
is enabled, fragment shader inputs with
TGSI_SEMANTIC_COLOR should not be interpolated. However, all other
varyings must be.
This was not implemented correctly in our varyings conversion pass which
caused problems with the blitter. This behavior has been fixed
in this commit.
In the process I figured out the meaning of bit 0 of pa_attributes.
The meanings of the other bits are still unknown.
|
|
|
|
|
|
New instruction works, but found an restriction in the ISA:
- it is not allowed to use multiple uniforms in one instruction.
If this is done the result is undefined, so need to work around this
by using a temporary.
|
|
Add API for querying the profiling counters.
Also add a demo `viv_profile` to print the current values of the counters
to the console.
|
|
GDB plugin for etnaviv driver debugging. This needs gdb 7.5+ to work.
usage (from gdb):
source /path/to/etnaviv_gdb.py
Commands:
gpu-state (prefix|uniforms)
Show full GPU state (default) or only registers with a certain prefix.
The special prefix 'uniforms' shows only the shader uniforms.
gpu-dis
Disassemble the current shaders.
|
|
|
|
Info from imx6_v4_0_0 driver
|
|
Add unknown bit in PE depth config used by cube example.
VS_RANGE_LOW is index of first vs instruction.
First instruction address = 0x0C000 + VS_RANGE_LOW*16.
VS_RANGE_HIGH is index of last instruction.
PS_RANGE_* works same way.
Generate headers to include new state_3d.xml
Update .gitignore
|
|
|
|
|
|
|
|
- fix crash on multiple non-consecutive vertex elements
- don't touch alpha factors when alpha blending disabled, to prevent
warning flood
- add silent flag to translate functions, to make probing in
etna_screen emit no warnings
- add missing pipe caps
- force NPO2 textures to true, as this is required by GLES2
this will likely cause problems on on GPUs that don't really
have support for this, we'd need to build a workaround
- temporary flush front buffer hack for mesa fbdev support
|
|
Create a library libetnaviv for
a) ioctl (kernel interface) wrapping
b) command buffer handling
c) context handling (still incomplete)
d) register description headers
A future 2D or SVG driver can share this code.
|
|
Support rendering to surfaces that do not have a Tile Status buffer.
This makes it possible to render to textures, for example.
|
|
move data structure definitions from etna_pipe.c to
etna_pipe.h and etna_internal.h
|
|
Figuring out all the capabilities is a lot of work; most is based
on guesswork right now, experimentation with MESA will have to show what
the limits really are.
Also fill in a few texture bits.
|
|
- fix some issues along the way
a) number of vs inputs is decided by number of vertex elements, not by shader
b) fill in texture swizzle
- move non-tgsi samples to fb_rawshader
|
|
|
|
|
|
- code generation for IF/ENDIF/ELSE
- input register permutation for PS
- generate passthrough shader without code if OUT[x]=IN[x]
|
|
in a separate test for now, to be later merged into etna driver when
code is actually produced
- input/output -> temp mapping
- constant and immediates allocation
- add tgsi test corpus
|
|
|