Hi, As I'm looking to add some support to nouveau for features like atomic counters and images, I'm running into some confusion about what the first word of the shader header means. Here is the definition as we have it today:
https://github.com/envytools/envytools/blob/master/rnndb/graph/gf100_shaders.xml VS/HS/DS/GS: <reg32 offset="0" name="0"> <bitfield high="7" low="0" name="MAGIC"> <value value="0x61" name="VP_MAGIC"/> </bitfield> <bitfield high="12" low="10" name="KIND" type="GF100_SHADER_KIND"/> <bitfield pos="16" name="GMEM_ENABLE"/> <bitfield pos="17" name="UNK17"/><!-- default 1 --> <bitfield pos="26" name="LMEM_ENABLE"/> <bitfield pos="27" name="FP64_ENABLE"/> </reg32> FS: <reg32 offset="0" name="0"> <bitfield high="7" low="0" name="MAGIC"> <value value="0x62" name="FP_MAGIC"/> </bitfield> <bitfield high="12" low="10" name="KIND" type="GF100_SHADER_KIND"/> <bitfield pos="14" name="MULTIPLE_COLOR_OUTPUTS" type="boolean"/> <bitfield pos="15" name="USES_KIL" type="boolean"/> <bitfield pos="16" name="GMEM_ENABLE"/> <bitfield pos="17" name="UNK17"/><!-- default 1 --> <bitfield pos="26" name="LMEM_ENABLE"/> <bitfield pos="27" name="FP64_ENABLE"/> </reg32> However I know that these are somewhat wrong. I've seen shaders that use gmem accesses (i.e. mov r0, [r0]) that just have the LMEM enable bit set (and they use no lmem). And I've seen additional bits set, esp relating to images, but I haven't spent enough time looking at all the variations to make sense of it yet. For example, I think that Fermi and Kepler+ have different meanings for some of the bits. I was hoping you could just release the docs for the shader headers, or at least the first word of the shader header. I know that it can take some time to get it all approved, but if you think this is *not* information you can release, please let me know soon so that I don't lose a month waiting. Thanks, -ilia _______________________________________________ Nouveau mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/nouveau
