diff options
author | Wladimir J. van der Laan <laanwj@gmail.com> | 2013-03-23 08:30:09 +0100 |
---|---|---|
committer | Wladimir J. van der Laan <laanwj@gmail.com> | 2013-03-23 08:30:09 +0100 |
commit | 24dfbab6dcbda28b124abb53f0d90067e13fe1e5 (patch) | |
tree | 78a00b304e0566d662adcc628f633d4e1a43232d /doc | |
parent | 7499ea976bb17736e67d5d3776acec58b59e99df (diff) |
rnndb: add profile counters
Diffstat (limited to 'doc')
-rw-r--r-- | doc/isa.md | 29 |
1 files changed, 18 insertions, 11 deletions
@@ -162,22 +162,29 @@ Becomes: TEXLD t2, tex0, t2.xyyy, void, void MUL t1, t1, t2, void -Misc notes -======================= -- The shader engine packs together the registers of concurrently-executing shaders into the register bank. - If you write beyond the number of registers in `VIV_STATE_(PS/VS)_TEMP_REGISTER_CONTROL`, you will overwrite - registers of the next/previous shader instance, resulting in corrupt output. +Clip-space z +-------------- -- Two instructions are always appended to the vertex shader: +Two instructions are always appended to the vertex shader: ADD t0.__z_, t0.zzzz, void, t0.wwww MUL t0.__z_, t0.zzzz, u0.xxxx, void ; u0.x=0.5 - This adjusts the output position z, based on w. Likely this works around a difference in interpretation between - the hardware and the OpenGL standard. +This adjusts the output position z, based on w. Likely this works around a difference in interpretation between +the hardware and the OpenGL standard. + +For the gc2000 in the i.mx6 these two instructions are no longer appended (the only difference in the vertex shader for +smoothed cube between gc600 and gc2000, as generated by the blob driver, is this). + +The cutoff point for this is at GC1000. All Vivante GPUs before GC1000 require these two instructions, except +the GC880. + +Misc notes +======================= +- The shader engine packs together the registers of concurrently-executing shaders into the register bank. + If you write beyond the number of registers in `VIV_STATE_(PS/VS)_TEMP_REGISTER_CONTROL`, you will overwrite + registers of the next/previous shader instance, resulting in corrupt output. - For the gc2000 in the i.mx6 these two instructions are no longer appended (the only difference in the vertex shader for - smoothed cube between gc600 and gc2000, as generated by the blob driver, is this). I do not know where the cutoff point is. - t0 at the beginning of the fragment shader has the x/y/z coordinates x and y are in screen space, z is depth in 0.0 .. 1.0 @@ -187,7 +194,7 @@ Misc notes - In PS, RGROUP 1 register i0.x contains the value of gl_FrontFacing. i0.y also contains a non-zero value. i0.zw are zero. -- i1..i127 are simply aliases of i0, at least on my GC600. + - i1..i127 are simply aliases of i0, at least on my GC600. - The exact same texture sampling instruction, TEXLD, is used to sample 2D as well as Cubemap textures (and, likely, other types of textures as well on hardware that supports these) |