[Nouveau] data error enum documentation
Andy Ritger
aritger at nvidia.com
Wed Apr 30 08:54:55 PDT 2014
Sorry for the very slow response to this, Ilia.
For the specific error you mentioned: the error code
0x51 is "ErrorSrcLineExceedsPitch", and error code 0x53 is
"ErrorDstLineExceedsPitch". It looks like class 0x9039 will generate
those errors under the following conditions:
if ((NV9039_LAUNCH_DMA_SRC_MEMORY_LAYOUT == PITCH) &&
(NV9039_LAUNCH_DMA_SRC_INLINE == FALSE) &&
(NV9039_LINE_COUNT_VALUE > 1) &&
(NV9039_PITCH_IN_VALUE >= 0) &&
(NV9039_LINE_LENGTH_IN_VALUE > NV9039_PITCH_IN_VALUE)) {
return ErrorSrcLineExceedsPitch;
}
if ((NV9039_LAUNCH_DMA_DST_MEMORY_LAYOUT == PITCH) &&
(NV9039_LINE_COUNT_VALUE > 1) &&
(NV9039_PITCH_OUT_VALUE >= 0) &&
(NV9039_LINE_LENGTH_IN_VALUE > NV9039_PITCH_OUT_VALUE)) {
return ErrorDstLineExceedsPitch;
}
Where those NV9039_* method values are defined as:
#define NV9039_LAUNCH_DMA 0x0300
#define NV9039_LAUNCH_DMA_SRC_INLINE 0:0
#define NV9039_LAUNCH_DMA_SRC_INLINE_FALSE 0x00000000
#define NV9039_LAUNCH_DMA_SRC_INLINE_TRUE 0x00000001
#define NV9039_LAUNCH_DMA_SRC_MEMORY_LAYOUT 4:4
#define NV9039_LAUNCH_DMA_SRC_MEMORY_LAYOUT_BLOCKLINEAR 0x00000000
#define NV9039_LAUNCH_DMA_SRC_MEMORY_LAYOUT_PITCH 0x00000001
#define NV9039_LAUNCH_DMA_DST_MEMORY_LAYOUT 8:8
#define NV9039_LAUNCH_DMA_DST_MEMORY_LAYOUT_BLOCKLINEAR 0x00000000
#define NV9039_LAUNCH_DMA_DST_MEMORY_LAYOUT_PITCH 0x00000001
#define NV9039_PITCH_IN 0x0314
#define NV9039_PITCH_IN_VALUE 31:0
#define NV9039_PITCH_OUT 0x0318
#define NV9039_PITCH_OUT_VALUE 31:0
#define NV9039_LINE_LENGTH_IN 0x031c
#define NV9039_LINE_LENGTH_IN_VALUE 31:0
#define NV9039_LINE_COUNT 0x0320
#define NV9039_LINE_COUNT_VALUE 31:0
As far as I can tell, these checks are not GF106-specific, so I'm not
sure why the problem is only showing up there. Maybe there is something
else unique about the GF106 user's configuration that causes this to
be triggered?
Thanks,
- Andy
On Tue, Mar 18, 2014 at 06:44:30AM -0700, Ilia Mirkin wrote:
> Hello,
>
> A user on an NVC3 card (GF106) is running into data errors on m2mf
> (class 0x9039) that we haven't seen before:
>
> http://people.freedesktop.org/~imirkin/nvc0-comparison/nvc3-2014-03-17-agashlin/glean/fbo.html
> http://people.freedesktop.org/~imirkin/nvc0-comparison/nvc3-2014-03-17-agashlin/spec/!OpenGL%201.1/copyteximage%201D.html
>
> Specifically the data errors 0x51 and 0x53, when running method 0x300
> ("EXEC"). Any chance you could let us know what those errors are? (Or,
> even better, provide the full table so that we'll have a better idea
> in future cases as well.)
>
> Here are a few that we know about, so you know exactly what table I'm
> talking about (our full list at
> https://github.com/envytools/envytools/blob/master/rnndb/nv50_defs.xml#L192):
>
> 0x04: INVALID_VALUE
> 0x05: INVALID_ENUM
> 0x08: INVALID_OBJECT
> 0x0c: INVALID_BITFIELD
> 0x3f: PRIMITIVE_ID_NEEDS_GP
>
> We read this data error value from mmio reg 0x400110.
>
> Furthermore, if you could provide any insight as to why we would see
> those errors on GF106 but not any other Fermi/Kepler that we've tested
> (which should all run exactly the same code paths), that would be
> extremely helpful as well. You can see the Fermi piglit runs we have
> on file at http://people.freedesktop.org/~imirkin/nvc0-comparison/problems.html
>
> Thanks,
>
> -ilia
More information about the Nouveau
mailing list