commit f63520e

Michael Forney  ·  2014-01-14 10:14:14 +0000 UTC
parent 2e467a3
Add initial nouveau support

Still need to implement text rendering.
8 files changed,  +1911, -1
M drm.c
+6, -0
 1@@ -38,6 +38,12 @@ ifeq ($(ENABLE_DRM),1)
 2         WLD_SOURCES += intel.c
 3         WLD_CPPFLAGS += -DWITH_DRM_INTEL=1
 4     endif
 5+
 6+    ifneq ($(findstring nouveau,$(DRM_DRIVERS)),)
 7+        WLD_REQUIRES_PRIVATE += libdrm_nouveau
 8+        WLD_SOURCES += nouveau.c
 9+        WLD_CPPFLAGS += -DWITH_DRM_NOUVEAU=1
10+    endif
11 endif
12 
13 ifeq ($(ENABLE_PIXMAN),1)
+1, -1
1@@ -14,7 +14,7 @@ ENABLE_PIXMAN       = 1
2 ENABLE_DRM          = 1
3 ENABLE_WAYLAND      = 0
4 
5-DRM_DRIVERS         = intel
6+DRM_DRIVERS         = intel nouveau
7 WAYLAND_INTERFACES  = shm
8 
9 ifeq ($(ENABLE_DRM),1)
+3, -0
 1@@ -36,6 +36,9 @@ struct drm_driver
 2 #if WITH_DRM_INTEL
 3 extern const struct drm_driver intel_drm_driver;
 4 #endif
 5+#if WITH_DRM_NOUVEAU
 6+extern const struct drm_driver nouveau_drm_driver;
 7+#endif
 8 extern const struct drm_driver dumb_drm_driver;
 9 extern const struct wld_context_impl * dumb_context_impl;
10 
M drm.c
+3, -0
 1@@ -27,6 +27,9 @@
 2 const static struct drm_driver * drivers[] = {
 3 #if WITH_DRM_INTEL
 4     &intel_drm_driver,
 5+#endif
 6+#if WITH_DRM_NOUVEAU
 7+    &nouveau_drm_driver,
 8 #endif
 9     &dumb_drm_driver
10 };
+556, -0
  1@@ -0,0 +1,556 @@
  2+/* wld: nouveau.c
  3+ *
  4+ * Copyright (c) 2013, 2014 Michael Forney
  5+ *
  6+ * Based in part upon nvc0_exa.c from xf86-video-nouveau, which is:
  7+ *
  8+ *     Copyright 2007 NVIDIA, Corporation
  9+ *     Copyright 2008 Ben Skeggs
 10+ *
 11+ * Permission is hereby granted, free of charge, to any person obtaining a copy
 12+ * of this software and associated documentation files (the "Software"), to deal
 13+ * in the Software without restriction, including without limitation the rights
 14+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 15+ * copies of the Software, and to permit persons to whom the Software is
 16+ * furnished to do so, subject to the following conditions:
 17+ *
 18+ * The above copyright notice and this permission notice shall be included in
 19+ * all copies or substantial portions of the Software.
 20+ *
 21+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 22+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 23+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 24+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 25+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 26+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 27+ * SOFTWARE.
 28+ */
 29+
 30+#include "drm-private.h"
 31+#include "drm.h"
 32+#include "pixman.h"
 33+#include "nouveau/nv_object.xml.h"
 34+#include "nouveau/nv50_2d.xml.h"
 35+#include "nouveau/nv50_defs.xml.h"
 36+
 37+#include <nouveau.h>
 38+#include <sys/mman.h>
 39+
 40+struct nouveau_context
 41+{
 42+    struct wld_context base;
 43+    struct nouveau_device * device;
 44+    struct nouveau_client * client;
 45+};
 46+
 47+struct nouveau_renderer
 48+{
 49+    struct wld_renderer base;
 50+    struct nouveau_object * channel;
 51+    struct nouveau_pushbuf * pushbuf;
 52+    struct nouveau_bufctx * bufctx;
 53+    struct nouveau_object * nvc0_2d;
 54+
 55+    struct nouveau_buffer * target;
 56+};
 57+
 58+struct nouveau_buffer
 59+{
 60+    struct wld_buffer base;
 61+    struct wld_exporter exporter;
 62+    struct nouveau_context * context;
 63+    struct nouveau_bo * bo;
 64+};
 65+
 66+#include "interface/context.h"
 67+#include "interface/renderer.h"
 68+#include "interface/buffer.h"
 69+#define DRM_DRIVER_NAME nouveau
 70+#include "interface/drm.h"
 71+#include "interface/exporter.h"
 72+IMPL(nouveau, context)
 73+IMPL(nouveau, renderer)
 74+IMPL(nouveau, buffer)
 75+
 76+/**** DRM driver ****/
 77+bool driver_device_supported(uint32_t vendor_id, uint32_t device_id)
 78+{
 79+    return vendor_id == 0x10de;
 80+}
 81+
 82+struct wld_context * driver_create_context(int drm_fd)
 83+{
 84+    struct nouveau_context * context;
 85+
 86+    if (!(context = malloc(sizeof *context)))
 87+        goto error0;
 88+
 89+    if (nouveau_device_wrap(drm_fd, 0, &context->device) != 0)
 90+        goto error1;
 91+
 92+    if (nouveau_client_new(context->device, &context->client) != 0)
 93+        goto error2;
 94+
 95+    context_initialize(&context->base, &context_impl);
 96+
 97+    return &context->base;
 98+
 99+  error2:
100+    nouveau_device_del(&context->device);
101+  error1:
102+    free(context);
103+  error0:
104+    return NULL;
105+}
106+
107+/**** Context ****/
108+static inline bool ensure_space(struct nouveau_pushbuf * push, uint32_t count)
109+{
110+    if (push->end - push->cur > count)
111+        return true;
112+
113+    return nouveau_pushbuf_space(push, count, 0, 0) == 0;
114+}
115+
116+static uint32_t nvc0_format(uint32_t format)
117+{
118+    switch (format)
119+    {
120+        case WLD_FORMAT_XRGB8888:
121+        case WLD_FORMAT_ARGB8888:
122+            return NV50_SURFACE_FORMAT_BGRA8_UNORM;
123+    }
124+
125+    return 0;
126+}
127+
128+static inline void nvc0_command(struct nouveau_pushbuf * push,
129+                                uint8_t subchannel, uint16_t method,
130+                                uint8_t count, ...)
131+{
132+    va_list dwords;
133+    va_start(dwords, count);
134+    *push->cur++ = 0x20000000 | count << 16 | subchannel << 13 | method >> 2;
135+    while (count--)
136+        *push->cur++ = va_arg(dwords, uint32_t);
137+    va_end(dwords);
138+}
139+
140+#define NVC0_SUBCHANNEL_2D      3
141+
142+#define nvc0_2d(push, method, count, ...) \
143+    nvc0_command(push, NVC0_SUBCHANNEL_2D, method, count, __VA_ARGS__)
144+
145+static bool nvc0_2d_initialize(struct nouveau_renderer * renderer)
146+{
147+    int ret;
148+
149+    ret = nouveau_object_new(renderer->channel, NVC0_2D, NVC0_2D, NULL, 0,
150+                             &renderer->nvc0_2d);
151+
152+    if (ret != 0)
153+        goto error0;
154+
155+    if (!ensure_space(renderer->pushbuf, 6))
156+        goto error1;
157+
158+    nvc0_2d(renderer->pushbuf, NV01_SUBCHAN_OBJECT, 1,
159+            renderer->nvc0_2d->handle);
160+    nvc0_2d(renderer->pushbuf, NV50_2D_UNK0884, 1, 0x3f);
161+    nvc0_2d(renderer->pushbuf, NV50_2D_UNK0888, 1, 1);
162+
163+    return true;
164+
165+  error1:
166+    nouveau_object_del(&renderer->nvc0_2d);
167+  error0:
168+    return false;
169+}
170+
171+static void nvc0_2d_finalize(struct nouveau_renderer * renderer)
172+{
173+    nouveau_object_del(&renderer->nvc0_2d);
174+}
175+
176+struct wld_renderer * context_create_renderer(struct wld_context * base)
177+{
178+    struct nouveau_context * context = nouveau_context(base);
179+    struct nouveau_renderer * renderer;
180+    struct nvc0_fifo fifo = { };
181+    int ret;
182+
183+    if (!(renderer = malloc(sizeof *renderer)))
184+        goto error0;
185+
186+    ret = nouveau_object_new(&context->device->object, 0,
187+                             NOUVEAU_FIFO_CHANNEL_CLASS, &fifo, sizeof fifo,
188+                             &renderer->channel);
189+
190+    if (ret != 0)
191+        goto error1;
192+
193+    ret = nouveau_pushbuf_new(context->client, renderer->channel, 4, 32 * 1024,
194+                              true, &renderer->pushbuf);
195+
196+    if (ret != 0)
197+        goto error2;
198+
199+    if (nouveau_bufctx_new(context->client, 1, &renderer->bufctx) != 0)
200+        goto error3;
201+
202+    if (!nvc0_2d_initialize(renderer))
203+        goto error4;
204+
205+    renderer_initialize(&renderer->base, &renderer_impl);
206+    renderer->target = NULL;
207+
208+    return &renderer->base;
209+
210+  error4:
211+    nouveau_bufctx_del(&renderer->bufctx);
212+  error3:
213+    nouveau_pushbuf_del(&renderer->pushbuf);
214+  error2:
215+    nouveau_object_del(&renderer->channel);
216+  error1:
217+    free(renderer);
218+  error0:
219+    return NULL;
220+}
221+
222+static struct nouveau_buffer * new_buffer(struct nouveau_context * context,
223+                                          uint32_t width, uint32_t height,
224+                                          uint32_t format, uint32_t pitch)
225+{
226+    struct nouveau_buffer * buffer;
227+
228+    if (!(buffer = malloc(sizeof *buffer)))
229+        return NULL;
230+
231+    buffer_initialize(&buffer->base, &buffer_impl,
232+                        width, height, format, pitch);
233+    buffer->context = context;
234+    exporter_initialize(&buffer->exporter, &exporter_impl);
235+    buffer_add_exporter(&buffer->base, &buffer->exporter);
236+
237+    return buffer;
238+}
239+
240+static inline uint32_t roundup(uint32_t value, uint32_t alignment)
241+{
242+    return (value + alignment - 1) & ~(alignment - 1);
243+}
244+
245+struct wld_buffer * context_create_buffer(struct wld_context * base,
246+                                          uint32_t width, uint32_t height,
247+                                          uint32_t format)
248+{
249+    struct nouveau_context * context = nouveau_context(base);
250+    struct nouveau_buffer * buffer;
251+    uint32_t bpp = format_bytes_per_pixel(format),
252+             pitch = roundup(width * bpp, 64), flags;
253+    union nouveau_bo_config config = { };
254+
255+    if (!(buffer = new_buffer(context, width, height, format, pitch)))
256+        goto error0;
257+
258+    flags = NOUVEAU_BO_VRAM;
259+
260+    /* FIXME: Only need CONTIG for scanout buffers */
261+    flags |= NOUVEAU_BO_CONTIG;
262+
263+    /* FIXME: Use tiling
264+    if (height > 0x40)
265+    {
266+        config.nvc0.tile_mode = 0x40;
267+        config.nvc0.memtype = 0xfe;
268+        height = roundup(height, 0x80);
269+    }
270+    else
271+    */
272+        flags |= NOUVEAU_BO_MAP;
273+
274+    if (nouveau_bo_new(context->device, flags, 0, pitch * height,
275+                       &config, &buffer->bo) != 0)
276+    {
277+        goto error1;
278+    }
279+
280+    return &buffer->base;
281+
282+  error1:
283+    free(buffer);
284+  error0:
285+    return NULL;
286+}
287+
288+struct wld_buffer * context_import_buffer
289+    (struct wld_context * base, uint32_t type, union wld_object object,
290+     uint32_t width, uint32_t height, uint32_t format, uint32_t pitch)
291+{
292+    struct nouveau_context * context = (void *) base;
293+    struct nouveau_buffer * buffer;
294+    struct nouveau_bo * bo;
295+
296+    switch (type)
297+    {
298+        case WLD_DRM_OBJECT_PRIME_FD:
299+            if (nouveau_bo_prime_handle_ref(context->device,
300+                                            object.i, &bo) != 0)
301+            {
302+                goto error0;
303+            }
304+            break;
305+        case WLD_DRM_OBJECT_GEM_NAME:
306+            if (nouveau_bo_name_ref(context->device, object.u32, &bo) != 0)
307+                goto error0;
308+            break;
309+        default: goto error0;
310+    }
311+
312+    if (!(buffer = new_buffer(context, width, height, format, pitch)))
313+        goto error1;
314+
315+    buffer->bo = bo;
316+
317+    return &buffer->base;
318+
319+  error1:
320+    nouveau_bo_ref(NULL, &buffer->bo);
321+  error0:
322+    return NULL;
323+}
324+
325+void context_destroy(struct wld_context * base)
326+{
327+    struct nouveau_context * context = nouveau_context(base);
328+
329+    nouveau_client_del(&context->client);
330+    nouveau_device_del(&context->device);
331+    free(context);
332+}
333+
334+/**** Renderer ****/
335+uint32_t renderer_capabilities(struct wld_renderer * renderer,
336+                               struct wld_buffer * buffer)
337+{
338+    if (buffer->impl == &buffer_impl)
339+        return WLD_CAPABILITY_READ | WLD_CAPABILITY_WRITE;
340+
341+    return 0;
342+}
343+
344+bool renderer_set_target(struct wld_renderer * base,
345+                         struct wld_buffer * buffer)
346+{
347+    struct nouveau_renderer * renderer = nouveau_renderer(base);
348+
349+    if (buffer && buffer->impl != &buffer_impl)
350+        return false;
351+
352+    renderer->target = buffer ? nouveau_buffer(buffer) : NULL;
353+
354+    return true;
355+}
356+
357+static inline void nvc0_2d_dst(struct nouveau_renderer * renderer,
358+                               struct nouveau_buffer * buffer, uint32_t format)
359+{
360+
361+    if (buffer->bo->config.nvc0.memtype)
362+    {
363+        nvc0_2d(renderer->pushbuf, NV50_2D_DST_FORMAT, 5,
364+                format, 0, buffer->bo->config.nvc0.tile_mode, 1, 0);
365+    }
366+    else
367+    {
368+        nvc0_2d(renderer->pushbuf, NV50_2D_DST_FORMAT, 2, format, 1);
369+        nvc0_2d(renderer->pushbuf, NV50_2D_DST_PITCH, 1, buffer->base.pitch);
370+    }
371+
372+    nvc0_2d(renderer->pushbuf, NV50_2D_DST_WIDTH, 4,
373+            buffer->base.width, buffer->base.height,
374+            buffer->bo->offset >> 32, buffer->bo->offset);
375+    nouveau_bufctx_refn(renderer->bufctx, 0, buffer->bo,
376+                        NOUVEAU_BO_VRAM | NOUVEAU_BO_WR);
377+}
378+
379+static inline void nvc0_2d_src(struct nouveau_renderer * renderer,
380+                               struct nouveau_buffer * buffer, uint32_t format)
381+{
382+    if (buffer->bo->config.nvc0.memtype)
383+    {
384+        nvc0_2d(renderer->pushbuf, NV50_2D_SRC_FORMAT, 5,
385+                format, 0, buffer->bo->config.nvc0.tile_mode, 1, 0);
386+    }
387+    else
388+    {
389+        nvc0_2d(renderer->pushbuf, NV50_2D_SRC_FORMAT, 2, format, 1);
390+        nvc0_2d(renderer->pushbuf, NV50_2D_SRC_PITCH, 1, buffer->base.pitch);
391+    }
392+
393+    nvc0_2d(renderer->pushbuf, NV50_2D_SRC_WIDTH, 4,
394+            buffer->base.width, buffer->base.height,
395+            buffer->bo->offset >> 32, buffer->bo->offset);
396+    nouveau_bufctx_refn(renderer->bufctx, 0, buffer->bo,
397+                        NOUVEAU_BO_VRAM | NOUVEAU_BO_RD);
398+}
399+
400+void renderer_fill_rectangle(struct wld_renderer * base, uint32_t color,
401+                             int32_t x, int32_t y,
402+                             uint32_t width, uint32_t height)
403+{
404+    struct nouveau_renderer * renderer = nouveau_renderer(base);
405+    uint32_t format;
406+
407+    if (!ensure_space(renderer->pushbuf, 22))
408+        return;
409+
410+    format = nvc0_format(renderer->target->base.format);
411+
412+    nouveau_bufctx_reset(renderer->bufctx, 0);
413+    nvc0_2d_dst(renderer, renderer->target, format);
414+    nvc0_2d(renderer->pushbuf, NV50_2D_OPERATION, 1, NV50_2D_OPERATION_SRCCOPY);
415+    nvc0_2d(renderer->pushbuf, NV50_2D_DRAW_SHAPE, 3,
416+            NV50_2D_DRAW_SHAPE_RECTANGLES, format, color);
417+    nouveau_pushbuf_bufctx(renderer->pushbuf, renderer->bufctx);
418+
419+    if (nouveau_pushbuf_validate(renderer->pushbuf) != 0)
420+        return;
421+
422+    nvc0_2d(renderer->pushbuf, NV50_2D_DRAW_POINT32_X(0), 4,
423+            x, y, x + width, y + height);
424+}
425+
426+void renderer_copy_rectangle(struct wld_renderer * base,
427+                             struct wld_buffer * buffer_base,
428+                             int32_t dst_x, int32_t dst_y,
429+                             int32_t src_x, int32_t src_y,
430+                             uint32_t width, uint32_t height)
431+{
432+    struct nouveau_renderer * renderer = nouveau_renderer(base);
433+
434+    if (buffer_base->impl != &buffer_impl)
435+        return;
436+
437+    struct nouveau_buffer * buffer = nouveau_buffer(buffer_base);
438+    uint32_t src_format, dst_format;
439+
440+    if (!ensure_space(renderer->pushbuf, 41))
441+        return;
442+
443+    src_format = nvc0_format(buffer->base.format);
444+    dst_format = nvc0_format(renderer->target->base.format);
445+
446+    nouveau_bufctx_reset(renderer->bufctx, 0);
447+    nvc0_2d_src(renderer, buffer, src_format);
448+    nvc0_2d_dst(renderer, renderer->target, dst_format);
449+    nvc0_2d(renderer->pushbuf, NV50_2D_OPERATION, 1, NV50_2D_OPERATION_SRCCOPY);
450+    nouveau_pushbuf_bufctx(renderer->pushbuf, renderer->bufctx);
451+
452+    if (nouveau_pushbuf_validate(renderer->pushbuf) != 0)
453+        return;
454+
455+    nvc0_2d(renderer->pushbuf, NV50_GRAPH_SERIALIZE, 1, 0);
456+    nvc0_2d(renderer->pushbuf, NV50_2D_BLIT_CONTROL, 1, 0);
457+    nvc0_2d(renderer->pushbuf, NV50_2D_BLIT_DST_X, 12,
458+            dst_x, dst_y, width, height, 0, 1, 0, 1, 0, src_x, 0, src_y);
459+
460+    renderer_flush(base);
461+}
462+
463+void renderer_draw_text(struct wld_renderer * base,
464+                        struct font * font, uint32_t color,
465+                        int32_t x, int32_t y, const char * text, int32_t length,
466+                        struct wld_extents * extents)
467+{
468+    /* TODO: Implement */
469+}
470+
471+void renderer_flush(struct wld_renderer * base)
472+{
473+    struct nouveau_renderer * renderer = nouveau_renderer(base);
474+
475+    nouveau_pushbuf_kick(renderer->pushbuf, renderer->channel);
476+    nouveau_pushbuf_bufctx(renderer->pushbuf, NULL);
477+}
478+
479+void renderer_destroy(struct wld_renderer * base)
480+{
481+    struct nouveau_renderer * renderer = nouveau_renderer(base);
482+
483+    nvc0_2d_finalize(renderer);
484+    nouveau_bufctx_del(&renderer->bufctx);
485+    nouveau_pushbuf_del(&renderer->pushbuf);
486+    nouveau_object_del(&renderer->channel);
487+    free(renderer);
488+}
489+
490+/**** Buffer ****/
491+bool buffer_map(struct wld_buffer * base)
492+{
493+    struct nouveau_buffer * buffer = nouveau_buffer(base);
494+
495+    if (buffer->bo->config.nvc0.tile_mode)
496+        return false;
497+
498+    if (nouveau_bo_map(buffer->bo, NOUVEAU_BO_WR,
499+                       buffer->context->client) != 0)
500+    {
501+        return false;
502+    }
503+
504+    base->map.data = buffer->bo->map;
505+
506+    return true;
507+}
508+
509+bool buffer_unmap(struct wld_buffer * base)
510+{
511+    struct nouveau_buffer * buffer = nouveau_buffer(base);
512+
513+    if (munmap(buffer->bo->map, buffer->bo->size) == -1)
514+        return false;
515+
516+    buffer->bo->map = NULL;
517+    base->map.data = NULL;
518+
519+    return true;
520+}
521+
522+void buffer_destroy(struct wld_buffer * base)
523+{
524+    struct nouveau_buffer * buffer = (void *) base;
525+
526+    nouveau_bo_ref(NULL, &buffer->bo);
527+    free(buffer);
528+}
529+
530+/**** Exporter ****/
531+bool exporter_export(struct wld_exporter * exporter, struct wld_buffer * base,
532+                     uint32_t type, union wld_object * object)
533+{
534+    struct nouveau_buffer * buffer = nouveau_buffer(base);
535+
536+    switch (type)
537+    {
538+        case WLD_DRM_OBJECT_HANDLE:
539+            object->u32 = buffer->bo->handle;
540+            return true;
541+        case WLD_DRM_OBJECT_PRIME_FD:
542+            if (nouveau_bo_set_prime(buffer->bo, &object->i) != 0)
543+                return false;
544+            return true;
545+        case WLD_DRM_OBJECT_GEM_NAME:
546+            if (nouveau_bo_name_get(buffer->bo, &object->u32) != 0)
547+                return false;
548+            return true;
549+        default:
550+            return false;
551+    }
552+}
553+
554+void exporter_destroy(struct wld_exporter * exporter)
555+{
556+}
557+
+541, -0
  1@@ -0,0 +1,541 @@
  2+#ifndef NV50_2D_XML
  3+#define NV50_2D_XML
  4+
  5+/* Autogenerated file, DO NOT EDIT manually!
  6+
  7+This file was generated by the rules-ng-ng headergen tool in this git repository:
  8+http://github.com/envytools/envytools/
  9+git clone https://github.com/envytools/envytools.git
 10+
 11+The rules-ng-ng source files this header was generated from are:
 12+- /home/michael/src/envytools/rnndb/root.xml                     (    514 bytes, from 2014-01-29 23:36:47)
 13+- /home/michael/src/envytools/rnndb/copyright.xml                (   6452 bytes, from 2014-01-29 23:36:47)
 14+- /home/michael/src/envytools/rnndb/nv_mmio.xml                  (   7086 bytes, from 2014-01-29 23:36:47)
 15+- /home/michael/src/envytools/rnndb/nvchipsets.xml               (   4092 bytes, from 2014-01-29 23:36:47)
 16+- /home/michael/src/envytools/rnndb/bus/pmc.xml                  (  11084 bytes, from 2014-01-29 23:36:47)
 17+- /home/michael/src/envytools/rnndb/bus/pbus.xml                 (  19828 bytes, from 2014-01-29 23:36:47)
 18+- /home/michael/src/envytools/rnndb/nv50_defs.xml                (  16877 bytes, from 2014-01-29 23:36:47)
 19+- /home/michael/src/envytools/rnndb/memory/nv50_vm.xml           (   9860 bytes, from 2014-01-29 23:36:47)
 20+- /home/michael/src/envytools/rnndb/display/nv_vga.xml           (  13113 bytes, from 2014-01-29 23:36:47)
 21+- /home/michael/src/envytools/rnndb/bus/pci.xml                  (  17502 bytes, from 2014-01-29 23:36:47)
 22+- /home/michael/src/envytools/rnndb/fifo/nv01_pfifo.xml          (  10607 bytes, from 2014-01-29 23:36:47)
 23+- /home/michael/src/envytools/rnndb/fifo/nv04_pfifo.xml          (  24125 bytes, from 2014-01-29 23:36:47)
 24+- /home/michael/src/envytools/rnndb/fifo/nv50_pfifo.xml          (  23242 bytes, from 2014-01-29 23:36:47)
 25+- /home/michael/src/envytools/rnndb/fifo/nvc0_pfifo.xml          (  26418 bytes, from 2014-01-29 23:36:47)
 26+- /home/michael/src/envytools/rnndb/memory/nvc0_vm.xml           (   8573 bytes, from 2014-01-29 23:36:47)
 27+- /home/michael/src/envytools/rnndb/pm/nv40_pclock.xml           (   1171 bytes, from 2014-01-29 23:36:47)
 28+- /home/michael/src/envytools/rnndb/pm/nv50_pclock.xml           (  16532 bytes, from 2014-01-29 23:36:47)
 29+- /home/michael/src/envytools/rnndb/pm/nva3_pclock.xml           (   4463 bytes, from 2014-01-29 23:36:47)
 30+- /home/michael/src/envytools/rnndb/display/nv10_pvideo.xml      (    451 bytes, from 2014-01-29 23:36:47)
 31+- /home/michael/src/envytools/rnndb/bus/ptimer.xml               (   2287 bytes, from 2014-01-29 23:36:47)
 32+- /home/michael/src/envytools/rnndb/nv10_pcounter.xml            (   5914 bytes, from 2014-01-29 23:36:47)
 33+- /home/michael/src/envytools/rnndb/nv40_pcounter.xml            (   9692 bytes, from 2014-01-29 23:36:47)
 34+- /home/michael/src/envytools/rnndb/vdec/vpe/pmpeg.xml           (  12766 bytes, from 2014-01-29 23:36:47)
 35+- /home/michael/src/envytools/rnndb/vdec/vpe/pvpe.xml            (    704 bytes, from 2014-01-29 23:36:47)
 36+- /home/michael/src/envytools/rnndb/vdec/vpe/mpeg_fifo.xml       (   2622 bytes, from 2014-01-29 23:36:47)
 37+- /home/michael/src/envytools/rnndb/fifo/nv_object.xml           (  14664 bytes, from 2014-01-29 23:36:47)
 38+- /home/michael/src/envytools/rnndb/vdec/vpe/pme.xml             (   5124 bytes, from 2014-01-29 23:36:47)
 39+- /home/michael/src/envytools/rnndb/display/nv17_ptv.xml         (    458 bytes, from 2014-01-29 23:36:47)
 40+- /home/michael/src/envytools/rnndb/io/pnvio.xml                 (  32034 bytes, from 2014-01-29 23:36:47)
 41+- /home/michael/src/envytools/rnndb/vdec/vpe/pvp1.xml            (   2111 bytes, from 2014-01-29 23:36:47)
 42+- /home/michael/src/envytools/rnndb/vdec/vp2/pvp2.xml            (   1618 bytes, from 2014-01-29 23:36:47)
 43+- /home/michael/src/envytools/rnndb/vdec/vp2/xtensa.xml          (   5386 bytes, from 2014-01-29 23:36:47)
 44+- /home/michael/src/envytools/rnndb/pm/ptherm.xml                (  32292 bytes, from 2014-01-29 23:36:47)
 45+- /home/michael/src/envytools/rnndb/bus/pfuse.xml                (    803 bytes, from 2014-01-29 23:36:47)
 46+- /home/michael/src/envytools/rnndb/bus/punits.xml               (   4193 bytes, from 2014-01-29 23:36:47)
 47+- /home/michael/src/envytools/rnndb/vdec/vp3/pvld.xml            (  13233 bytes, from 2014-01-29 23:36:47)
 48+- /home/michael/src/envytools/rnndb/falcon.xml                   (  16884 bytes, from 2014-01-29 23:36:47)
 49+- /home/michael/src/envytools/rnndb/falcon_crypt.xml             (   3446 bytes, from 2014-01-29 23:36:47)
 50+- /home/michael/src/envytools/rnndb/vdec/vp3/pvdec.xml           (  14115 bytes, from 2014-01-29 23:36:47)
 51+- /home/michael/src/envytools/rnndb/vdec/vp3/pppp.xml            (   8830 bytes, from 2014-01-29 23:36:47)
 52+- /home/michael/src/envytools/rnndb/nv_defs.xml                  (   4399 bytes, from 2014-01-29 23:36:47)
 53+- /home/michael/src/envytools/rnndb/vdec/vp3/pcrypt3.xml         (   1003 bytes, from 2014-01-29 23:36:47)
 54+- /home/michael/src/envytools/rnndb/nv84_punk089.xml             (    449 bytes, from 2014-01-29 23:36:47)
 55+- /home/michael/src/envytools/rnndb/display/nv03_prmvio.xml      (    654 bytes, from 2014-01-29 23:36:47)
 56+- /home/michael/src/envytools/rnndb/memory/nv01_pdma.xml         (   5345 bytes, from 2014-01-29 23:36:47)
 57+- /home/michael/src/envytools/rnndb/memory/nv03_pfb.xml          (   4511 bytes, from 2014-01-29 23:36:47)
 58+- /home/michael/src/envytools/rnndb/memory/nv10_pfb.xml          (  25274 bytes, from 2014-01-29 23:36:47)
 59+- /home/michael/src/envytools/rnndb/memory/nv_pfb.xml            (   1135 bytes, from 2014-01-29 23:36:47)
 60+- /home/michael/src/envytools/rnndb/memory/nvc0_pffb.xml         (   2707 bytes, from 2014-01-29 23:36:47)
 61+- /home/michael/src/envytools/rnndb/io/pstraps.xml               (   8077 bytes, from 2014-01-29 23:36:47)
 62+- /home/michael/src/envytools/rnndb/vdec/vp2/pcrypt2.xml         (   3578 bytes, from 2014-01-29 23:36:47)
 63+- /home/michael/src/envytools/rnndb/vdec/vp2/pbsp.xml            (  10624 bytes, from 2014-01-29 23:36:47)
 64+- /home/michael/src/envytools/rnndb/fifo/pcopy.xml               (   7843 bytes, from 2014-01-29 23:36:47)
 65+- /home/michael/src/envytools/rnndb/display/nva3_pcodec.xml      (    448 bytes, from 2014-01-29 23:36:47)
 66+- /home/michael/src/envytools/rnndb/display/nva3_pkfuse.xml      (    447 bytes, from 2014-01-29 23:36:47)
 67+- /home/michael/src/envytools/rnndb/pm/pdaemon.xml               (  17194 bytes, from 2014-01-29 23:36:47)
 68+- /home/michael/src/envytools/rnndb/memory/nvc0_pbfb.xml         (   2898 bytes, from 2014-01-29 23:36:47)
 69+- /home/michael/src/envytools/rnndb/bus/pibus.xml                (   8356 bytes, from 2014-01-29 23:36:47)
 70+- /home/michael/src/envytools/rnndb/pm/nvc0_pclock.xml           (   7279 bytes, from 2014-01-29 23:36:47)
 71+- /home/michael/src/envytools/rnndb/memory/nvc0_pp2p.xml         (   1946 bytes, from 2014-01-29 23:36:47)
 72+- /home/michael/src/envytools/rnndb/memory/nvc0_pxbar.xml        (   1156 bytes, from 2014-01-29 23:36:47)
 73+- /home/michael/src/envytools/rnndb/memory/nvc0_pmfb.xml         (   3631 bytes, from 2014-01-29 23:36:47)
 74+- /home/michael/src/envytools/rnndb/nvc0_pcounter.xml            (  12613 bytes, from 2014-01-29 23:36:47)
 75+- /home/michael/src/envytools/rnndb/vdec/pvcomp.xml              (   8682 bytes, from 2014-01-29 23:36:47)
 76+- /home/michael/src/envytools/rnndb/vdec/pvenc.xml               (   1233 bytes, from 2014-01-29 23:36:47)
 77+- /home/michael/src/envytools/rnndb/display/nvd9_punk1c3.xml     (    978 bytes, from 2014-01-29 23:36:47)
 78+- /home/michael/src/envytools/rnndb/io/pmedia.xml                (    432 bytes, from 2014-01-29 23:36:47)
 79+- /home/michael/src/envytools/rnndb/nv01_paudio.xml              (   1863 bytes, from 2014-01-29 23:36:47)
 80+- /home/michael/src/envytools/rnndb/extdev/ad1848.xml            (   5260 bytes, from 2014-01-29 23:36:47)
 81+- /home/michael/src/envytools/rnndb/graph/nv01_pgraph.xml        (  14241 bytes, from 2014-01-29 23:36:47)
 82+- /home/michael/src/envytools/rnndb/graph/nv01_2d.xml            (  36779 bytes, from 2014-01-29 23:36:47)
 83+- /home/michael/src/envytools/rnndb/graph/nv03_pgraph.xml        (   4011 bytes, from 2014-01-29 23:36:47)
 84+- /home/michael/src/envytools/rnndb/graph/nv04_pgraph.xml        (  11363 bytes, from 2014-01-29 23:36:47)
 85+- /home/michael/src/envytools/rnndb/graph/nv50_pgraph.xml        (  54643 bytes, from 2014-01-29 23:36:47)
 86+- /home/michael/src/envytools/rnndb/graph/nvc0_pgraph/pgraph.xml (  23719 bytes, from 2014-01-29 23:36:47)
 87+- /home/michael/src/envytools/rnndb/graph/nvc0_pgraph/ctxctl.xml (  12648 bytes, from 2014-01-29 23:36:47)
 88+- /home/michael/src/envytools/rnndb/graph/nvc0_pgraph/gpc.xml    (   7276 bytes, from 2014-01-29 23:36:47)
 89+- /home/michael/src/envytools/rnndb/graph/nvc0_pgraph/tpc.xml    (  15311 bytes, from 2014-01-29 23:36:47)
 90+- /home/michael/src/envytools/rnndb/graph/nvc0_pgraph/ppc.xml    (   1170 bytes, from 2014-01-29 23:36:47)
 91+- /home/michael/src/envytools/rnndb/graph/nvc0_pgraph/rop.xml    (   2143 bytes, from 2014-01-29 23:36:47)
 92+- /home/michael/src/envytools/rnndb/graph/nv03_pdma.xml          (   2293 bytes, from 2014-01-29 23:36:47)
 93+- /home/michael/src/envytools/rnndb/display/nv01_pfb.xml         (   4033 bytes, from 2014-01-29 23:36:47)
 94+- /home/michael/src/envytools/rnndb/display/nv03_pcrtc.xml       (   1114 bytes, from 2014-01-29 23:36:47)
 95+- /home/michael/src/envytools/rnndb/memory/nv01_pram.xml         (   1241 bytes, from 2014-01-29 23:36:47)
 96+- /home/michael/src/envytools/rnndb/io/pchipid.xml               (    494 bytes, from 2014-01-29 23:36:47)
 97+- /home/michael/src/envytools/rnndb/display/nv01_pdac.xml        (   4639 bytes, from 2014-01-29 23:36:47)
 98+- /home/michael/src/envytools/rnndb/io/peeprom.xml               (    703 bytes, from 2014-01-29 23:36:47)
 99+- /home/michael/src/envytools/rnndb/display/nv03_pramdac.xml     (   4455 bytes, from 2014-01-29 23:36:47)
100+- /home/michael/src/envytools/rnndb/display/nv50_pdisplay.xml    (  38497 bytes, from 2014-01-29 23:36:47)
101+- /home/michael/src/envytools/rnndb/bus/prm.xml                  (   5098 bytes, from 2014-01-29 23:36:47)
102+- /home/michael/src/envytools/rnndb/display/nv_evo.xml           (  10560 bytes, from 2014-01-29 23:36:47)
103+- /home/michael/src/envytools/rnndb/fifo/nv_objects.xml          (   1054 bytes, from 2014-01-29 23:36:47)
104+- /home/michael/src/envytools/rnndb/graph/nv_m2mf.xml            (   2701 bytes, from 2014-01-29 23:36:47)
105+- /home/michael/src/envytools/rnndb/graph/nvc0_m2mf.xml          (   2788 bytes, from 2014-01-29 23:36:47)
106+- /home/michael/src/envytools/rnndb/graph/nv04_dvd.xml           (   3005 bytes, from 2014-01-29 23:36:47)
107+- /home/michael/src/envytools/rnndb/graph/nv03_3d.xml            (   5214 bytes, from 2014-01-29 23:36:47)
108+- /home/michael/src/envytools/rnndb/graph/nv04_3d.xml            (  17770 bytes, from 2014-01-29 23:36:47)
109+- /home/michael/src/envytools/rnndb/graph/nv_3ddefs.xml          (  16394 bytes, from 2014-01-29 23:36:47)
110+- /home/michael/src/envytools/rnndb/graph/nv10_3d.xml            (  18441 bytes, from 2014-01-29 23:36:47)
111+- /home/michael/src/envytools/rnndb/graph/nv20_3d.xml            (  21106 bytes, from 2014-01-29 23:36:47)
112+- /home/michael/src/envytools/rnndb/graph/nv30-40_3d.xml         (  32461 bytes, from 2014-01-29 23:36:47)
113+- /home/michael/src/envytools/rnndb/graph/nv50_2d.xml            (  11441 bytes, from 2014-01-29 23:36:47)
114+- /home/michael/src/envytools/rnndb/graph/nv50_3d.xml            (  65928 bytes, from 2014-01-29 23:36:47)
115+- /home/michael/src/envytools/rnndb/graph/nv50_compute.xml       (  14047 bytes, from 2014-01-29 23:36:47)
116+- /home/michael/src/envytools/rnndb/graph/nvc0_3d.xml            (  59735 bytes, from 2014-01-29 23:36:47)
117+- /home/michael/src/envytools/rnndb/graph/nve4_p2mf.xml          (   2378 bytes, from 2014-01-29 23:36:47)
118+- /home/michael/src/envytools/rnndb/graph/nvc0_compute.xml       (  11150 bytes, from 2014-01-29 23:36:47)
119+- /home/michael/src/envytools/rnndb/graph/nve4_compute.xml       (  10179 bytes, from 2014-01-29 23:36:47)
120+- /home/michael/src/envytools/rnndb/vdec/vpe/me_fifo.xml         (   1690 bytes, from 2014-01-29 23:36:47)
121+- /home/michael/src/envytools/rnndb/vdec/vpe/vp1_fifo.xml        (    675 bytes, from 2014-01-29 23:36:47)
122+- /home/michael/src/envytools/rnndb/vdec/vp2/crypt2_fifo.xml     (   2077 bytes, from 2014-01-29 23:36:47)
123+- /home/michael/src/envytools/rnndb/fifo/nve4_copy.xml           (   3928 bytes, from 2014-01-29 23:36:47)
124+- /home/michael/src/envytools/rnndb/graph/nv50_texture.xml       (   8648 bytes, from 2014-01-29 23:36:47)
125+- /home/michael/src/envytools/rnndb/graph/nvc0_shaders.xml       (   7409 bytes, from 2014-01-29 23:36:47)
126+- /home/michael/src/envytools/rnndb/vdec/vpe/mpeg_cmd.xml        (   7682 bytes, from 2014-01-29 23:36:47)
127+- /home/michael/src/envytools/rnndb/extdev/adt7473.xml           (  11411 bytes, from 2014-01-29 23:36:47)
128+
129+Copyright (C) 2006-2014 by the following authors:
130+- Artur Huillet <arthur.huillet@free.fr> (ahuillet)
131+- Ben Skeggs (darktama, darktama_)
132+- B. R. <koala_br@users.sourceforge.net> (koala_br)
133+- Carlos Martin <carlosmn@users.sf.net> (carlosmn)
134+- Christoph Bumiller <e0425955@student.tuwien.ac.at> (calim, chrisbmr)
135+- Dawid Gajownik <gajownik@users.sf.net> (gajownik)
136+- Dmitry Baryshkov
137+- Dmitry Eremin-Solenikov <lumag@users.sf.net> (lumag)
138+- EdB <edb_@users.sf.net> (edb_)
139+- Erik Waling <erikwailing@users.sf.net> (erikwaling)
140+- Francisco Jerez <currojerez@riseup.net> (curro)
141+- imirkin <imirkin@users.sf.net> (imirkin)
142+- jb17bsome <jb17bsome@bellsouth.net> (jb17bsome)
143+- Jeremy Kolb <kjeremy@users.sf.net> (kjeremy)
144+- Laurent Carlier <lordheavym@gmail.com> (lordheavy)
145+- Luca Barbieri <luca@luca-barbieri.com> (lb, lb1)
146+- Maarten Maathuis <madman2003@gmail.com> (stillunknown)
147+- Marcin Koƛcielnicki <koriakin@0x04.net> (mwk, koriakin)
148+- Mark Carey <mark.carey@gmail.com> (careym)
149+- Matthieu Castet <matthieu.castet@parrot.com> (mat-c)
150+- nvidiaman <nvidiaman@users.sf.net> (nvidiaman)
151+- Patrice Mandin <patmandin@gmail.com> (pmandin, pmdata)
152+- Pekka Paalanen <pq@iki.fi> (pq, ppaalanen)
153+- Peter Popov <ironpeter@users.sf.net> (ironpeter)
154+- Richard Hughes <hughsient@users.sf.net> (hughsient)
155+- Rudi Cilibrasi <cilibrar@users.sf.net> (cilibrar)
156+- Serge Martin
157+- Simon Raffeiner
158+- Stephane Loeuillet <leroutier@users.sf.net> (leroutier)
159+- Stephane Marchesin <stephane.marchesin@gmail.com> (marcheu)
160+- sturmflut <sturmflut@users.sf.net> (sturmflut)
161+- Sylvain Munaut <tnt@246tNt.com>
162+- Victor Stinner <victor.stinner@haypocalc.com> (haypo)
163+- Wladmir van der Laan <laanwj@gmail.com> (miathan6)
164+- Younes Manton <younes.m@gmail.com> (ymanton)
165+
166+Permission is hereby granted, free of charge, to any person obtaining
167+a copy of this software and associated documentation files (the
168+"Software"), to deal in the Software without restriction, including
169+without limitation the rights to use, copy, modify, merge, publish,
170+distribute, sublicense, and/or sell copies of the Software, and to
171+permit persons to whom the Software is furnished to do so, subject to
172+the following conditions:
173+
174+The above copyright notice and this permission notice (including the
175+next paragraph) shall be included in all copies or substantial
176+portions of the Software.
177+
178+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
179+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
180+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
181+IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
182+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
183+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
184+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
185+*/
186+
187+
188+
189+
190+#define NV50_2D_DMA_NOTIFY					0x00000180
191+
192+#define NV50_2D_DMA_DST						0x00000184
193+
194+#define NV50_2D_DMA_SRC						0x00000188
195+
196+#define NV50_2D_DMA_COND					0x0000018c
197+
198+#define NV50_2D_DST_FORMAT					0x00000200
199+
200+#define NV50_2D_DST_LINEAR					0x00000204
201+
202+#define NV50_2D_DST_TILE_MODE					0x00000208
203+
204+#define NV50_2D_DST_DEPTH					0x0000020c
205+
206+#define NV50_2D_DST_LAYER					0x00000210
207+
208+#define NV50_2D_DST_PITCH					0x00000214
209+
210+#define NV50_2D_DST_WIDTH					0x00000218
211+
212+#define NV50_2D_DST_HEIGHT					0x0000021c
213+
214+#define NV50_2D_DST_ADDRESS_HIGH				0x00000220
215+
216+#define NV50_2D_DST_ADDRESS_LOW					0x00000224
217+
218+#define NV50_2D_UNK228						0x00000228
219+
220+#define NVC0_2D_UNK228						0x00000228
221+
222+#define NVC0_2D_UNK22C						0x0000022c
223+
224+#define NV50_2D_SRC_FORMAT					0x00000230
225+
226+#define NV50_2D_SRC_LINEAR					0x00000234
227+
228+#define NV50_2D_SRC_TILE_MODE					0x00000238
229+
230+#define NV50_2D_SRC_DEPTH					0x0000023c
231+
232+#define NV50_2D_SRC_LAYER					0x00000240
233+
234+#define NVC0_2D_UNK0240						0x00000240
235+
236+#define NV50_2D_SRC_PITCH					0x00000244
237+#define NV50_2D_SRC_PITCH__MAX					0x00040000
238+
239+#define NV50_2D_SRC_WIDTH					0x00000248
240+#define NV50_2D_SRC_WIDTH__MAX					0x00010000
241+
242+#define NV50_2D_SRC_HEIGHT					0x0000024c
243+#define NV50_2D_SRC_HEIGHT__MAX					0x00010000
244+
245+#define NV50_2D_SRC_ADDRESS_HIGH				0x00000250
246+
247+#define NV50_2D_SRC_ADDRESS_LOW					0x00000254
248+
249+#define NV50_2D_UNK258						0x00000258
250+
251+#define NVC0_2D_UNK25C						0x0000025c
252+
253+#define NV50_2D_UNK260						0x00000260
254+
255+#define NVC0_2D_SINGLE_GPC					0x00000260
256+
257+#define NV50_2D_COND_ADDRESS_HIGH				0x00000264
258+
259+#define NV50_2D_COND_ADDRESS_LOW				0x00000268
260+
261+#define NV50_2D_COND_MODE					0x0000026c
262+#define NV50_2D_COND_MODE_NEVER					0x00000000
263+#define NV50_2D_COND_MODE_ALWAYS				0x00000001
264+#define NV50_2D_COND_MODE_RES_NON_ZERO				0x00000002
265+#define NV50_2D_COND_MODE_EQUAL					0x00000003
266+#define NV50_2D_COND_MODE_NOT_EQUAL				0x00000004
267+
268+#define NVC0_2D_UNK0270(i0)				       (0x00000270 + 0x4*(i0))
269+#define NVC0_2D_UNK0270__ESIZE					0x00000004
270+#define NVC0_2D_UNK0270__LEN					0x00000004
271+
272+#define NV50_2D_CLIP_X						0x00000280
273+
274+#define NV50_2D_CLIP_Y						0x00000284
275+
276+#define NV50_2D_CLIP_W						0x00000288
277+
278+#define NV50_2D_CLIP_H						0x0000028c
279+
280+#define NV50_2D_CLIP_ENABLE					0x00000290
281+
282+#define NV50_2D_COLOR_KEY_FORMAT				0x00000294
283+#define NV50_2D_COLOR_KEY_FORMAT_16BPP				0x00000000
284+#define NV50_2D_COLOR_KEY_FORMAT_15BPP				0x00000001
285+#define NV50_2D_COLOR_KEY_FORMAT_24BPP				0x00000002
286+#define NV50_2D_COLOR_KEY_FORMAT_30BPP				0x00000003
287+#define NV50_2D_COLOR_KEY_FORMAT_8BPP				0x00000004
288+#define NV50_2D_COLOR_KEY_FORMAT_16BPP2				0x00000005
289+#define NV50_2D_COLOR_KEY_FORMAT_32BPP				0x00000006
290+
291+#define NV50_2D_COLOR_KEY					0x00000298
292+
293+#define NV50_2D_COLOR_KEY_ENABLE				0x0000029c
294+
295+#define NV50_2D_ROP						0x000002a0
296+
297+#define NV50_2D_BETA1						0x000002a4
298+#define NV50_2D_BETA1_BETA1__MASK				0x7f800000
299+#define NV50_2D_BETA1_BETA1__SHIFT				23
300+
301+#define NV50_2D_BETA4						0x000002a8
302+#define NV50_2D_BETA4_B__MASK					0x000000ff
303+#define NV50_2D_BETA4_B__SHIFT					0
304+#define NV50_2D_BETA4_G__MASK					0x0000ff00
305+#define NV50_2D_BETA4_G__SHIFT					8
306+#define NV50_2D_BETA4_R__MASK					0x00ff0000
307+#define NV50_2D_BETA4_R__SHIFT					16
308+#define NV50_2D_BETA4_A__MASK					0xff000000
309+#define NV50_2D_BETA4_A__SHIFT					24
310+
311+#define NV50_2D_OPERATION					0x000002ac
312+#define NV50_2D_OPERATION_SRCCOPY_AND				0x00000000
313+#define NV50_2D_OPERATION_ROP_AND				0x00000001
314+#define NV50_2D_OPERATION_BLEND					0x00000002
315+#define NV50_2D_OPERATION_SRCCOPY				0x00000003
316+#define NV50_2D_OPERATION_ROP					0x00000004
317+#define NV50_2D_OPERATION_SRCCOPY_PREMULT			0x00000005
318+#define NV50_2D_OPERATION_BLEND_PREMULT				0x00000006
319+
320+#define NV50_2D_PATTERN_OFFSET					0x000002b0
321+#define NV50_2D_PATTERN_OFFSET_X__MASK				0x0000003f
322+#define NV50_2D_PATTERN_OFFSET_X__SHIFT				0
323+#define NV50_2D_PATTERN_OFFSET_Y__MASK				0x00003f00
324+#define NV50_2D_PATTERN_OFFSET_Y__SHIFT				8
325+
326+#define NV50_2D_PATTERN_SELECT					0x000002b4
327+#define NV50_2D_PATTERN_SELECT_BITMAP_8X8			0x00000000
328+#define NV50_2D_PATTERN_SELECT_BITMAP_64X1			0x00000001
329+#define NV50_2D_PATTERN_SELECT_BITMAP_1X64			0x00000002
330+#define NV50_2D_PATTERN_SELECT_COLOR				0x00000003
331+
332+#define NVC0_2D_UNK02B8(i0)				       (0x000002b8 + 0x4*(i0))
333+#define NVC0_2D_UNK02B8__ESIZE					0x00000004
334+#define NVC0_2D_UNK02B8__LEN					0x00000009
335+
336+#define NVC0_2D_UNK2DC						0x000002dc
337+
338+#define NVC0_2D_UNK2E0						0x000002e0
339+
340+#define NVC0_2D_UNK02E4						0x000002e4
341+
342+#define NV50_2D_PATTERN_COLOR_FORMAT				0x000002e8
343+#define NV50_2D_PATTERN_COLOR_FORMAT_A16R5G6B5			0x00000000
344+#define NV50_2D_PATTERN_COLOR_FORMAT_X16A1R5G5B5		0x00000001
345+#define NV50_2D_PATTERN_COLOR_FORMAT_A8R8G8B8			0x00000002
346+#define NV50_2D_PATTERN_COLOR_FORMAT_X16A8Y8			0x00000003
347+#define NV50_2D_PATTERN_COLOR_FORMAT_UNK4			0x00000004
348+#define NV50_2D_PATTERN_COLOR_FORMAT_UNK5			0x00000005
349+
350+#define NV50_2D_PATTERN_BITMAP_FORMAT				0x000002ec
351+#define NV50_2D_PATTERN_BITMAP_FORMAT_CGA6			0x00000000
352+#define NV50_2D_PATTERN_BITMAP_FORMAT_LE			0x00000001
353+
354+#define NV50_2D_PATTERN_BITMAP_COLOR(i0)		       (0x000002f0 + 0x4*(i0))
355+#define NV50_2D_PATTERN_BITMAP_COLOR__ESIZE			0x00000004
356+#define NV50_2D_PATTERN_BITMAP_COLOR__LEN			0x00000002
357+
358+#define NV50_2D_PATTERN_BITMAP(i0)			       (0x000002f8 + 0x4*(i0))
359+#define NV50_2D_PATTERN_BITMAP__ESIZE				0x00000004
360+#define NV50_2D_PATTERN_BITMAP__LEN				0x00000002
361+
362+#define NV50_2D_PATTERN_X8R8G8B8(i0)			       (0x00000300 + 0x4*(i0))
363+#define NV50_2D_PATTERN_X8R8G8B8__ESIZE				0x00000004
364+#define NV50_2D_PATTERN_X8R8G8B8__LEN				0x00000040
365+#define NV50_2D_PATTERN_X8R8G8B8_B__MASK			0x000000ff
366+#define NV50_2D_PATTERN_X8R8G8B8_B__SHIFT			0
367+#define NV50_2D_PATTERN_X8R8G8B8_G__MASK			0x0000ff00
368+#define NV50_2D_PATTERN_X8R8G8B8_G__SHIFT			8
369+#define NV50_2D_PATTERN_X8R8G8B8_R__MASK			0x00ff0000
370+#define NV50_2D_PATTERN_X8R8G8B8_R__SHIFT			16
371+
372+#define NV50_2D_PATTERN_R5G6B5(i0)			       (0x00000400 + 0x4*(i0))
373+#define NV50_2D_PATTERN_R5G6B5__ESIZE				0x00000004
374+#define NV50_2D_PATTERN_R5G6B5__LEN				0x00000020
375+#define NV50_2D_PATTERN_R5G6B5_B0__MASK				0x0000001f
376+#define NV50_2D_PATTERN_R5G6B5_B0__SHIFT			0
377+#define NV50_2D_PATTERN_R5G6B5_G0__MASK				0x000007e0
378+#define NV50_2D_PATTERN_R5G6B5_G0__SHIFT			5
379+#define NV50_2D_PATTERN_R5G6B5_R0__MASK				0x0000f800
380+#define NV50_2D_PATTERN_R5G6B5_R0__SHIFT			11
381+#define NV50_2D_PATTERN_R5G6B5_B1__MASK				0x001f0000
382+#define NV50_2D_PATTERN_R5G6B5_B1__SHIFT			16
383+#define NV50_2D_PATTERN_R5G6B5_G1__MASK				0x07e00000
384+#define NV50_2D_PATTERN_R5G6B5_G1__SHIFT			21
385+#define NV50_2D_PATTERN_R5G6B5_R1__MASK				0xf8000000
386+#define NV50_2D_PATTERN_R5G6B5_R1__SHIFT			27
387+
388+#define NV50_2D_PATTERN_X1R5G5B5(i0)			       (0x00000480 + 0x4*(i0))
389+#define NV50_2D_PATTERN_X1R5G5B5__ESIZE				0x00000004
390+#define NV50_2D_PATTERN_X1R5G5B5__LEN				0x00000020
391+#define NV50_2D_PATTERN_X1R5G5B5_B0__MASK			0x0000001f
392+#define NV50_2D_PATTERN_X1R5G5B5_B0__SHIFT			0
393+#define NV50_2D_PATTERN_X1R5G5B5_G0__MASK			0x000003e0
394+#define NV50_2D_PATTERN_X1R5G5B5_G0__SHIFT			5
395+#define NV50_2D_PATTERN_X1R5G5B5_R0__MASK			0x00007c00
396+#define NV50_2D_PATTERN_X1R5G5B5_R0__SHIFT			10
397+#define NV50_2D_PATTERN_X1R5G5B5_B1__MASK			0x001f0000
398+#define NV50_2D_PATTERN_X1R5G5B5_B1__SHIFT			16
399+#define NV50_2D_PATTERN_X1R5G5B5_G1__MASK			0x03e00000
400+#define NV50_2D_PATTERN_X1R5G5B5_G1__SHIFT			21
401+#define NV50_2D_PATTERN_X1R5G5B5_R1__MASK			0x7c000000
402+#define NV50_2D_PATTERN_X1R5G5B5_R1__SHIFT			26
403+
404+#define NV50_2D_PATTERN_Y8(i0)				       (0x00000500 + 0x4*(i0))
405+#define NV50_2D_PATTERN_Y8__ESIZE				0x00000004
406+#define NV50_2D_PATTERN_Y8__LEN					0x00000010
407+#define NV50_2D_PATTERN_Y8_Y0__MASK				0x000000ff
408+#define NV50_2D_PATTERN_Y8_Y0__SHIFT				0
409+#define NV50_2D_PATTERN_Y8_Y1__MASK				0x0000ff00
410+#define NV50_2D_PATTERN_Y8_Y1__SHIFT				8
411+#define NV50_2D_PATTERN_Y8_Y2__MASK				0x00ff0000
412+#define NV50_2D_PATTERN_Y8_Y2__SHIFT				16
413+#define NV50_2D_PATTERN_Y8_Y3__MASK				0xff000000
414+#define NV50_2D_PATTERN_Y8_Y3__SHIFT				24
415+
416+#define NVC0_2D_DRAW_COLOR_LONG(i0)			       (0x00000540 + 0x4*(i0))
417+#define NVC0_2D_DRAW_COLOR_LONG__ESIZE				0x00000004
418+#define NVC0_2D_DRAW_COLOR_LONG__LEN				0x00000004
419+
420+#define NV50_2D_DRAW_SHAPE					0x00000580
421+#define NV50_2D_DRAW_SHAPE_POINTS				0x00000000
422+#define NV50_2D_DRAW_SHAPE_LINES				0x00000001
423+#define NV50_2D_DRAW_SHAPE_LINE_STRIP				0x00000002
424+#define NV50_2D_DRAW_SHAPE_TRIANGLES				0x00000003
425+#define NV50_2D_DRAW_SHAPE_RECTANGLES				0x00000004
426+
427+#define NV50_2D_DRAW_COLOR_FORMAT				0x00000584
428+
429+#define NV50_2D_DRAW_COLOR					0x00000588
430+
431+#define NV50_2D_UNK58C						0x0000058c
432+#define NV50_2D_UNK58C_0					0x00000001
433+#define NV50_2D_UNK58C_1					0x00000010
434+#define NV50_2D_UNK58C_2					0x00000100
435+#define NV50_2D_UNK58C_3					0x00001000
436+
437+#define NV50_2D_DRAW_POINT16					0x000005e0
438+#define NV50_2D_DRAW_POINT16_X__MASK				0x0000ffff
439+#define NV50_2D_DRAW_POINT16_X__SHIFT				0
440+#define NV50_2D_DRAW_POINT16_Y__MASK				0xffff0000
441+#define NV50_2D_DRAW_POINT16_Y__SHIFT				16
442+
443+#define NV50_2D_DRAW_POINT32_X(i0)			       (0x00000600 + 0x8*(i0))
444+#define NV50_2D_DRAW_POINT32_X__ESIZE				0x00000008
445+#define NV50_2D_DRAW_POINT32_X__LEN				0x00000040
446+
447+#define NV50_2D_DRAW_POINT32_Y(i0)			       (0x00000604 + 0x8*(i0))
448+#define NV50_2D_DRAW_POINT32_Y__ESIZE				0x00000008
449+#define NV50_2D_DRAW_POINT32_Y__LEN				0x00000040
450+
451+#define NV50_2D_SIFC_BITMAP_ENABLE				0x00000800
452+
453+#define NV50_2D_SIFC_FORMAT					0x00000804
454+
455+#define NV50_2D_SIFC_BITMAP_FORMAT				0x00000808
456+#define NV50_2D_SIFC_BITMAP_FORMAT_I1				0x00000000
457+#define NV50_2D_SIFC_BITMAP_FORMAT_I4				0x00000001
458+#define NV50_2D_SIFC_BITMAP_FORMAT_I8				0x00000002
459+
460+#define NV50_2D_SIFC_BITMAP_LSB_FIRST				0x0000080c
461+
462+#define NV50_2D_SIFC_BITMAP_LINE_PACK_MODE			0x00000810
463+#define NV50_2D_SIFC_BITMAP_LINE_PACK_MODE_PACKED		0x00000000
464+#define NV50_2D_SIFC_BITMAP_LINE_PACK_MODE_ALIGN_BYTE		0x00000001
465+#define NV50_2D_SIFC_BITMAP_LINE_PACK_MODE_ALIGN_WORD		0x00000002
466+
467+#define NV50_2D_SIFC_BITMAP_COLOR_BIT0				0x00000814
468+
469+#define NV50_2D_SIFC_BITMAP_COLOR_BIT1				0x00000818
470+
471+#define NV50_2D_SIFC_BITMAP_WRITE_BIT0_ENABLE			0x0000081c
472+
473+#define NV50_2D_SIFC_WIDTH					0x00000838
474+
475+#define NV50_2D_SIFC_HEIGHT					0x0000083c
476+
477+#define NV50_2D_SIFC_DX_DU_FRACT				0x00000840
478+
479+#define NV50_2D_SIFC_DX_DU_INT					0x00000844
480+
481+#define NV50_2D_SIFC_DY_DV_FRACT				0x00000848
482+
483+#define NV50_2D_SIFC_DY_DV_INT					0x0000084c
484+
485+#define NV50_2D_SIFC_DST_X_FRACT				0x00000850
486+
487+#define NV50_2D_SIFC_DST_X_INT					0x00000854
488+
489+#define NV50_2D_SIFC_DST_Y_FRACT				0x00000858
490+
491+#define NV50_2D_SIFC_DST_Y_INT					0x0000085c
492+
493+#define NV50_2D_SIFC_DATA					0x00000860
494+
495+#define NV50_2D_UNK0870						0x00000870
496+
497+#define NV50_2D_UNK0880						0x00000880
498+
499+#define NV50_2D_UNK0884						0x00000884
500+
501+#define NV50_2D_UNK0888						0x00000888
502+
503+#define NV50_2D_BLIT_CONTROL					0x0000088c
504+#define NV50_2D_BLIT_CONTROL_ORIGIN__MASK			0x00000001
505+#define NV50_2D_BLIT_CONTROL_ORIGIN__SHIFT			0
506+#define NV50_2D_BLIT_CONTROL_ORIGIN_CENTER			0x00000000
507+#define NV50_2D_BLIT_CONTROL_ORIGIN_CORNER			0x00000001
508+#define NV50_2D_BLIT_CONTROL_FILTER__MASK			0x00000010
509+#define NV50_2D_BLIT_CONTROL_FILTER__SHIFT			4
510+#define NV50_2D_BLIT_CONTROL_FILTER_POINT_SAMPLE		0x00000000
511+#define NV50_2D_BLIT_CONTROL_FILTER_BILINEAR			0x00000010
512+
513+#define NV50_2D_BLIT_DST_X					0x000008b0
514+
515+#define NV50_2D_BLIT_DST_Y					0x000008b4
516+
517+#define NV50_2D_BLIT_DST_W					0x000008b8
518+
519+#define NV50_2D_BLIT_DST_H					0x000008bc
520+
521+#define NV50_2D_BLIT_DU_DX_FRACT				0x000008c0
522+
523+#define NV50_2D_BLIT_DU_DX_INT					0x000008c4
524+
525+#define NV50_2D_BLIT_DV_DY_FRACT				0x000008c8
526+
527+#define NV50_2D_BLIT_DV_DY_INT					0x000008cc
528+
529+#define NV50_2D_BLIT_SRC_X_FRACT				0x000008d0
530+
531+#define NV50_2D_BLIT_SRC_X_INT					0x000008d4
532+
533+#define NV50_2D_BLIT_SRC_Y_FRACT				0x000008d8
534+
535+#define NV50_2D_BLIT_SRC_Y_INT					0x000008dc
536+
537+#define NVC0_2D_FIRMWARE(i0)				       (0x000008e0 + 0x4*(i0))
538+#define NVC0_2D_FIRMWARE__ESIZE					0x00000004
539+#define NVC0_2D_FIRMWARE__LEN					0x00000020
540+
541+
542+#endif /* NV50_2D_XML */
+359, -0
  1@@ -0,0 +1,359 @@
  2+#ifndef NV50_DEFS_XML
  3+#define NV50_DEFS_XML
  4+
  5+/* Autogenerated file, DO NOT EDIT manually!
  6+
  7+This file was generated by the rules-ng-ng headergen tool in this git repository:
  8+http://github.com/envytools/envytools/
  9+git clone https://github.com/envytools/envytools.git
 10+
 11+The rules-ng-ng source files this header was generated from are:
 12+- /home/michael/src/envytools/rnndb/root.xml                     (    514 bytes, from 2014-01-29 23:36:47)
 13+- /home/michael/src/envytools/rnndb/copyright.xml                (   6452 bytes, from 2014-01-29 23:36:47)
 14+- /home/michael/src/envytools/rnndb/nv_mmio.xml                  (   7086 bytes, from 2014-01-29 23:36:47)
 15+- /home/michael/src/envytools/rnndb/nvchipsets.xml               (   4092 bytes, from 2014-01-29 23:36:47)
 16+- /home/michael/src/envytools/rnndb/bus/pmc.xml                  (  11084 bytes, from 2014-01-29 23:36:47)
 17+- /home/michael/src/envytools/rnndb/bus/pbus.xml                 (  19828 bytes, from 2014-01-29 23:36:47)
 18+- /home/michael/src/envytools/rnndb/nv50_defs.xml                (  16877 bytes, from 2014-01-29 23:36:47)
 19+- /home/michael/src/envytools/rnndb/memory/nv50_vm.xml           (   9860 bytes, from 2014-01-29 23:36:47)
 20+- /home/michael/src/envytools/rnndb/display/nv_vga.xml           (  13113 bytes, from 2014-01-29 23:36:47)
 21+- /home/michael/src/envytools/rnndb/bus/pci.xml                  (  17502 bytes, from 2014-01-29 23:36:47)
 22+- /home/michael/src/envytools/rnndb/fifo/nv01_pfifo.xml          (  10607 bytes, from 2014-01-29 23:36:47)
 23+- /home/michael/src/envytools/rnndb/fifo/nv04_pfifo.xml          (  24125 bytes, from 2014-01-29 23:36:47)
 24+- /home/michael/src/envytools/rnndb/fifo/nv50_pfifo.xml          (  23242 bytes, from 2014-01-29 23:36:47)
 25+- /home/michael/src/envytools/rnndb/fifo/nvc0_pfifo.xml          (  26418 bytes, from 2014-01-29 23:36:47)
 26+- /home/michael/src/envytools/rnndb/memory/nvc0_vm.xml           (   8573 bytes, from 2014-01-29 23:36:47)
 27+- /home/michael/src/envytools/rnndb/pm/nv40_pclock.xml           (   1171 bytes, from 2014-01-29 23:36:47)
 28+- /home/michael/src/envytools/rnndb/pm/nv50_pclock.xml           (  16532 bytes, from 2014-01-29 23:36:47)
 29+- /home/michael/src/envytools/rnndb/pm/nva3_pclock.xml           (   4463 bytes, from 2014-01-29 23:36:47)
 30+- /home/michael/src/envytools/rnndb/display/nv10_pvideo.xml      (    451 bytes, from 2014-01-29 23:36:47)
 31+- /home/michael/src/envytools/rnndb/bus/ptimer.xml               (   2287 bytes, from 2014-01-29 23:36:47)
 32+- /home/michael/src/envytools/rnndb/nv10_pcounter.xml            (   5914 bytes, from 2014-01-29 23:36:47)
 33+- /home/michael/src/envytools/rnndb/nv40_pcounter.xml            (   9692 bytes, from 2014-01-29 23:36:47)
 34+- /home/michael/src/envytools/rnndb/vdec/vpe/pmpeg.xml           (  12766 bytes, from 2014-01-29 23:36:47)
 35+- /home/michael/src/envytools/rnndb/vdec/vpe/pvpe.xml            (    704 bytes, from 2014-01-29 23:36:47)
 36+- /home/michael/src/envytools/rnndb/vdec/vpe/mpeg_fifo.xml       (   2622 bytes, from 2014-01-29 23:36:47)
 37+- /home/michael/src/envytools/rnndb/fifo/nv_object.xml           (  14664 bytes, from 2014-01-29 23:36:47)
 38+- /home/michael/src/envytools/rnndb/vdec/vpe/pme.xml             (   5124 bytes, from 2014-01-29 23:36:47)
 39+- /home/michael/src/envytools/rnndb/display/nv17_ptv.xml         (    458 bytes, from 2014-01-29 23:36:47)
 40+- /home/michael/src/envytools/rnndb/io/pnvio.xml                 (  32034 bytes, from 2014-01-29 23:36:47)
 41+- /home/michael/src/envytools/rnndb/vdec/vpe/pvp1.xml            (   2111 bytes, from 2014-01-29 23:36:47)
 42+- /home/michael/src/envytools/rnndb/vdec/vp2/pvp2.xml            (   1618 bytes, from 2014-01-29 23:36:47)
 43+- /home/michael/src/envytools/rnndb/vdec/vp2/xtensa.xml          (   5386 bytes, from 2014-01-29 23:36:47)
 44+- /home/michael/src/envytools/rnndb/pm/ptherm.xml                (  32292 bytes, from 2014-01-29 23:36:47)
 45+- /home/michael/src/envytools/rnndb/bus/pfuse.xml                (    803 bytes, from 2014-01-29 23:36:47)
 46+- /home/michael/src/envytools/rnndb/bus/punits.xml               (   4193 bytes, from 2014-01-29 23:36:47)
 47+- /home/michael/src/envytools/rnndb/vdec/vp3/pvld.xml            (  13233 bytes, from 2014-01-29 23:36:47)
 48+- /home/michael/src/envytools/rnndb/falcon.xml                   (  16884 bytes, from 2014-01-29 23:36:47)
 49+- /home/michael/src/envytools/rnndb/falcon_crypt.xml             (   3446 bytes, from 2014-01-29 23:36:47)
 50+- /home/michael/src/envytools/rnndb/vdec/vp3/pvdec.xml           (  14115 bytes, from 2014-01-29 23:36:47)
 51+- /home/michael/src/envytools/rnndb/vdec/vp3/pppp.xml            (   8830 bytes, from 2014-01-29 23:36:47)
 52+- /home/michael/src/envytools/rnndb/nv_defs.xml                  (   4399 bytes, from 2014-01-29 23:36:47)
 53+- /home/michael/src/envytools/rnndb/vdec/vp3/pcrypt3.xml         (   1003 bytes, from 2014-01-29 23:36:47)
 54+- /home/michael/src/envytools/rnndb/nv84_punk089.xml             (    449 bytes, from 2014-01-29 23:36:47)
 55+- /home/michael/src/envytools/rnndb/display/nv03_prmvio.xml      (    654 bytes, from 2014-01-29 23:36:47)
 56+- /home/michael/src/envytools/rnndb/memory/nv01_pdma.xml         (   5345 bytes, from 2014-01-29 23:36:47)
 57+- /home/michael/src/envytools/rnndb/memory/nv03_pfb.xml          (   4511 bytes, from 2014-01-29 23:36:47)
 58+- /home/michael/src/envytools/rnndb/memory/nv10_pfb.xml          (  25274 bytes, from 2014-01-29 23:36:47)
 59+- /home/michael/src/envytools/rnndb/memory/nv_pfb.xml            (   1135 bytes, from 2014-01-29 23:36:47)
 60+- /home/michael/src/envytools/rnndb/memory/nvc0_pffb.xml         (   2707 bytes, from 2014-01-29 23:36:47)
 61+- /home/michael/src/envytools/rnndb/io/pstraps.xml               (   8077 bytes, from 2014-01-29 23:36:47)
 62+- /home/michael/src/envytools/rnndb/vdec/vp2/pcrypt2.xml         (   3578 bytes, from 2014-01-29 23:36:47)
 63+- /home/michael/src/envytools/rnndb/vdec/vp2/pbsp.xml            (  10624 bytes, from 2014-01-29 23:36:47)
 64+- /home/michael/src/envytools/rnndb/fifo/pcopy.xml               (   7843 bytes, from 2014-01-29 23:36:47)
 65+- /home/michael/src/envytools/rnndb/display/nva3_pcodec.xml      (    448 bytes, from 2014-01-29 23:36:47)
 66+- /home/michael/src/envytools/rnndb/display/nva3_pkfuse.xml      (    447 bytes, from 2014-01-29 23:36:47)
 67+- /home/michael/src/envytools/rnndb/pm/pdaemon.xml               (  17194 bytes, from 2014-01-29 23:36:47)
 68+- /home/michael/src/envytools/rnndb/memory/nvc0_pbfb.xml         (   2898 bytes, from 2014-01-29 23:36:47)
 69+- /home/michael/src/envytools/rnndb/bus/pibus.xml                (   8356 bytes, from 2014-01-29 23:36:47)
 70+- /home/michael/src/envytools/rnndb/pm/nvc0_pclock.xml           (   7279 bytes, from 2014-01-29 23:36:47)
 71+- /home/michael/src/envytools/rnndb/memory/nvc0_pp2p.xml         (   1946 bytes, from 2014-01-29 23:36:47)
 72+- /home/michael/src/envytools/rnndb/memory/nvc0_pxbar.xml        (   1156 bytes, from 2014-01-29 23:36:47)
 73+- /home/michael/src/envytools/rnndb/memory/nvc0_pmfb.xml         (   3631 bytes, from 2014-01-29 23:36:47)
 74+- /home/michael/src/envytools/rnndb/nvc0_pcounter.xml            (  12613 bytes, from 2014-01-29 23:36:47)
 75+- /home/michael/src/envytools/rnndb/vdec/pvcomp.xml              (   8682 bytes, from 2014-01-29 23:36:47)
 76+- /home/michael/src/envytools/rnndb/vdec/pvenc.xml               (   1233 bytes, from 2014-01-29 23:36:47)
 77+- /home/michael/src/envytools/rnndb/display/nvd9_punk1c3.xml     (    978 bytes, from 2014-01-29 23:36:47)
 78+- /home/michael/src/envytools/rnndb/io/pmedia.xml                (    432 bytes, from 2014-01-29 23:36:47)
 79+- /home/michael/src/envytools/rnndb/nv01_paudio.xml              (   1863 bytes, from 2014-01-29 23:36:47)
 80+- /home/michael/src/envytools/rnndb/extdev/ad1848.xml            (   5260 bytes, from 2014-01-29 23:36:47)
 81+- /home/michael/src/envytools/rnndb/graph/nv01_pgraph.xml        (  14241 bytes, from 2014-01-29 23:36:47)
 82+- /home/michael/src/envytools/rnndb/graph/nv01_2d.xml            (  36779 bytes, from 2014-01-29 23:36:47)
 83+- /home/michael/src/envytools/rnndb/graph/nv03_pgraph.xml        (   4011 bytes, from 2014-01-29 23:36:47)
 84+- /home/michael/src/envytools/rnndb/graph/nv04_pgraph.xml        (  11363 bytes, from 2014-01-29 23:36:47)
 85+- /home/michael/src/envytools/rnndb/graph/nv50_pgraph.xml        (  54643 bytes, from 2014-01-29 23:36:47)
 86+- /home/michael/src/envytools/rnndb/graph/nvc0_pgraph/pgraph.xml (  23719 bytes, from 2014-01-29 23:36:47)
 87+- /home/michael/src/envytools/rnndb/graph/nvc0_pgraph/ctxctl.xml (  12648 bytes, from 2014-01-29 23:36:47)
 88+- /home/michael/src/envytools/rnndb/graph/nvc0_pgraph/gpc.xml    (   7276 bytes, from 2014-01-29 23:36:47)
 89+- /home/michael/src/envytools/rnndb/graph/nvc0_pgraph/tpc.xml    (  15311 bytes, from 2014-01-29 23:36:47)
 90+- /home/michael/src/envytools/rnndb/graph/nvc0_pgraph/ppc.xml    (   1170 bytes, from 2014-01-29 23:36:47)
 91+- /home/michael/src/envytools/rnndb/graph/nvc0_pgraph/rop.xml    (   2143 bytes, from 2014-01-29 23:36:47)
 92+- /home/michael/src/envytools/rnndb/graph/nv03_pdma.xml          (   2293 bytes, from 2014-01-29 23:36:47)
 93+- /home/michael/src/envytools/rnndb/display/nv01_pfb.xml         (   4033 bytes, from 2014-01-29 23:36:47)
 94+- /home/michael/src/envytools/rnndb/display/nv03_pcrtc.xml       (   1114 bytes, from 2014-01-29 23:36:47)
 95+- /home/michael/src/envytools/rnndb/memory/nv01_pram.xml         (   1241 bytes, from 2014-01-29 23:36:47)
 96+- /home/michael/src/envytools/rnndb/io/pchipid.xml               (    494 bytes, from 2014-01-29 23:36:47)
 97+- /home/michael/src/envytools/rnndb/display/nv01_pdac.xml        (   4639 bytes, from 2014-01-29 23:36:47)
 98+- /home/michael/src/envytools/rnndb/io/peeprom.xml               (    703 bytes, from 2014-01-29 23:36:47)
 99+- /home/michael/src/envytools/rnndb/display/nv03_pramdac.xml     (   4455 bytes, from 2014-01-29 23:36:47)
100+- /home/michael/src/envytools/rnndb/display/nv50_pdisplay.xml    (  38497 bytes, from 2014-01-29 23:36:47)
101+- /home/michael/src/envytools/rnndb/bus/prm.xml                  (   5098 bytes, from 2014-01-29 23:36:47)
102+- /home/michael/src/envytools/rnndb/display/nv_evo.xml           (  10560 bytes, from 2014-01-29 23:36:47)
103+- /home/michael/src/envytools/rnndb/fifo/nv_objects.xml          (   1054 bytes, from 2014-01-29 23:36:47)
104+- /home/michael/src/envytools/rnndb/graph/nv_m2mf.xml            (   2701 bytes, from 2014-01-29 23:36:47)
105+- /home/michael/src/envytools/rnndb/graph/nvc0_m2mf.xml          (   2788 bytes, from 2014-01-29 23:36:47)
106+- /home/michael/src/envytools/rnndb/graph/nv04_dvd.xml           (   3005 bytes, from 2014-01-29 23:36:47)
107+- /home/michael/src/envytools/rnndb/graph/nv03_3d.xml            (   5214 bytes, from 2014-01-29 23:36:47)
108+- /home/michael/src/envytools/rnndb/graph/nv04_3d.xml            (  17770 bytes, from 2014-01-29 23:36:47)
109+- /home/michael/src/envytools/rnndb/graph/nv_3ddefs.xml          (  16394 bytes, from 2014-01-29 23:36:47)
110+- /home/michael/src/envytools/rnndb/graph/nv10_3d.xml            (  18441 bytes, from 2014-01-29 23:36:47)
111+- /home/michael/src/envytools/rnndb/graph/nv20_3d.xml            (  21106 bytes, from 2014-01-29 23:36:47)
112+- /home/michael/src/envytools/rnndb/graph/nv30-40_3d.xml         (  32461 bytes, from 2014-01-29 23:36:47)
113+- /home/michael/src/envytools/rnndb/graph/nv50_2d.xml            (  11441 bytes, from 2014-01-29 23:36:47)
114+- /home/michael/src/envytools/rnndb/graph/nv50_3d.xml            (  65928 bytes, from 2014-01-29 23:36:47)
115+- /home/michael/src/envytools/rnndb/graph/nv50_compute.xml       (  14047 bytes, from 2014-01-29 23:36:47)
116+- /home/michael/src/envytools/rnndb/graph/nvc0_3d.xml            (  59735 bytes, from 2014-01-29 23:36:47)
117+- /home/michael/src/envytools/rnndb/graph/nve4_p2mf.xml          (   2378 bytes, from 2014-01-29 23:36:47)
118+- /home/michael/src/envytools/rnndb/graph/nvc0_compute.xml       (  11150 bytes, from 2014-01-29 23:36:47)
119+- /home/michael/src/envytools/rnndb/graph/nve4_compute.xml       (  10179 bytes, from 2014-01-29 23:36:47)
120+- /home/michael/src/envytools/rnndb/vdec/vpe/me_fifo.xml         (   1690 bytes, from 2014-01-29 23:36:47)
121+- /home/michael/src/envytools/rnndb/vdec/vpe/vp1_fifo.xml        (    675 bytes, from 2014-01-29 23:36:47)
122+- /home/michael/src/envytools/rnndb/vdec/vp2/crypt2_fifo.xml     (   2077 bytes, from 2014-01-29 23:36:47)
123+- /home/michael/src/envytools/rnndb/fifo/nve4_copy.xml           (   3928 bytes, from 2014-01-29 23:36:47)
124+- /home/michael/src/envytools/rnndb/graph/nv50_texture.xml       (   8648 bytes, from 2014-01-29 23:36:47)
125+- /home/michael/src/envytools/rnndb/graph/nvc0_shaders.xml       (   7409 bytes, from 2014-01-29 23:36:47)
126+- /home/michael/src/envytools/rnndb/vdec/vpe/mpeg_cmd.xml        (   7682 bytes, from 2014-01-29 23:36:47)
127+- /home/michael/src/envytools/rnndb/extdev/adt7473.xml           (  11411 bytes, from 2014-01-29 23:36:47)
128+
129+Copyright (C) 2006-2014 by the following authors:
130+- Artur Huillet <arthur.huillet@free.fr> (ahuillet)
131+- Ben Skeggs (darktama, darktama_)
132+- B. R. <koala_br@users.sourceforge.net> (koala_br)
133+- Carlos Martin <carlosmn@users.sf.net> (carlosmn)
134+- Christoph Bumiller <e0425955@student.tuwien.ac.at> (calim, chrisbmr)
135+- Dawid Gajownik <gajownik@users.sf.net> (gajownik)
136+- Dmitry Baryshkov
137+- Dmitry Eremin-Solenikov <lumag@users.sf.net> (lumag)
138+- EdB <edb_@users.sf.net> (edb_)
139+- Erik Waling <erikwailing@users.sf.net> (erikwaling)
140+- Francisco Jerez <currojerez@riseup.net> (curro)
141+- imirkin <imirkin@users.sf.net> (imirkin)
142+- jb17bsome <jb17bsome@bellsouth.net> (jb17bsome)
143+- Jeremy Kolb <kjeremy@users.sf.net> (kjeremy)
144+- Laurent Carlier <lordheavym@gmail.com> (lordheavy)
145+- Luca Barbieri <luca@luca-barbieri.com> (lb, lb1)
146+- Maarten Maathuis <madman2003@gmail.com> (stillunknown)
147+- Marcin Koƛcielnicki <koriakin@0x04.net> (mwk, koriakin)
148+- Mark Carey <mark.carey@gmail.com> (careym)
149+- Matthieu Castet <matthieu.castet@parrot.com> (mat-c)
150+- nvidiaman <nvidiaman@users.sf.net> (nvidiaman)
151+- Patrice Mandin <patmandin@gmail.com> (pmandin, pmdata)
152+- Pekka Paalanen <pq@iki.fi> (pq, ppaalanen)
153+- Peter Popov <ironpeter@users.sf.net> (ironpeter)
154+- Richard Hughes <hughsient@users.sf.net> (hughsient)
155+- Rudi Cilibrasi <cilibrar@users.sf.net> (cilibrar)
156+- Serge Martin
157+- Simon Raffeiner
158+- Stephane Loeuillet <leroutier@users.sf.net> (leroutier)
159+- Stephane Marchesin <stephane.marchesin@gmail.com> (marcheu)
160+- sturmflut <sturmflut@users.sf.net> (sturmflut)
161+- Sylvain Munaut <tnt@246tNt.com>
162+- Victor Stinner <victor.stinner@haypocalc.com> (haypo)
163+- Wladmir van der Laan <laanwj@gmail.com> (miathan6)
164+- Younes Manton <younes.m@gmail.com> (ymanton)
165+
166+Permission is hereby granted, free of charge, to any person obtaining
167+a copy of this software and associated documentation files (the
168+"Software"), to deal in the Software without restriction, including
169+without limitation the rights to use, copy, modify, merge, publish,
170+distribute, sublicense, and/or sell copies of the Software, and to
171+permit persons to whom the Software is furnished to do so, subject to
172+the following conditions:
173+
174+The above copyright notice and this permission notice (including the
175+next paragraph) shall be included in all copies or substantial
176+portions of the Software.
177+
178+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
179+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
180+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
181+IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
182+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
183+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
184+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
185+*/
186+
187+
188+#define NV50_VSTATUS_IDLE					0x00000000
189+#define NV50_VSTATUS_BUSY					0x00000001
190+#define NV50_VSTATUS_UNK2					0x00000002
191+#define NV50_VSTATUS_WAITING					0x00000003
192+#define NV50_VSTATUS_BLOCKED					0x00000005
193+#define NV50_VSTATUS_FAULTED					0x00000006
194+#define NV50_VSTATUS_PAUSED					0x00000007
195+#define NV50_SURFACE_FORMAT_BITMAP				0x0000001c
196+#define NV50_SURFACE_FORMAT_UNK1D				0x0000001d
197+#define NV50_SURFACE_FORMAT_RGBA32_FLOAT			0x000000c0
198+#define NV50_SURFACE_FORMAT_RGBA32_SINT				0x000000c1
199+#define NV50_SURFACE_FORMAT_RGBA32_UINT				0x000000c2
200+#define NV50_SURFACE_FORMAT_RGBX32_FLOAT			0x000000c3
201+#define NV50_SURFACE_FORMAT_RGBX32_SINT				0x000000c4
202+#define NV50_SURFACE_FORMAT_RGBX32_UINT				0x000000c5
203+#define NV50_SURFACE_FORMAT_RGBA16_UNORM			0x000000c6
204+#define NV50_SURFACE_FORMAT_RGBA16_SNORM			0x000000c7
205+#define NV50_SURFACE_FORMAT_RGBA16_SINT				0x000000c8
206+#define NV50_SURFACE_FORMAT_RGBA16_UINT				0x000000c9
207+#define NV50_SURFACE_FORMAT_RGBA16_FLOAT			0x000000ca
208+#define NV50_SURFACE_FORMAT_RG32_FLOAT				0x000000cb
209+#define NV50_SURFACE_FORMAT_RG32_SINT				0x000000cc
210+#define NV50_SURFACE_FORMAT_RG32_UINT				0x000000cd
211+#define NV50_SURFACE_FORMAT_RGBX16_FLOAT			0x000000ce
212+#define NV50_SURFACE_FORMAT_BGRA8_UNORM				0x000000cf
213+#define NV50_SURFACE_FORMAT_BGRA8_SRGB				0x000000d0
214+#define NV50_SURFACE_FORMAT_RGB10_A2_UNORM			0x000000d1
215+#define NV50_SURFACE_FORMAT_RGB10_A2_UINT			0x000000d2
216+#define NV50_SURFACE_FORMAT_RGBA8_UNORM				0x000000d5
217+#define NV50_SURFACE_FORMAT_RGBA8_SRGB				0x000000d6
218+#define NV50_SURFACE_FORMAT_RGBA8_SNORM				0x000000d7
219+#define NV50_SURFACE_FORMAT_RGBA8_SINT				0x000000d8
220+#define NV50_SURFACE_FORMAT_RGBA8_UINT				0x000000d9
221+#define NV50_SURFACE_FORMAT_RG16_UNORM				0x000000da
222+#define NV50_SURFACE_FORMAT_RG16_SNORM				0x000000db
223+#define NV50_SURFACE_FORMAT_RG16_SINT				0x000000dc
224+#define NV50_SURFACE_FORMAT_RG16_UINT				0x000000dd
225+#define NV50_SURFACE_FORMAT_RG16_FLOAT				0x000000de
226+#define NV50_SURFACE_FORMAT_BGR10_A2_UNORM			0x000000df
227+#define NV50_SURFACE_FORMAT_R11G11B10_FLOAT			0x000000e0
228+#define NV50_SURFACE_FORMAT_R32_SINT				0x000000e3
229+#define NV50_SURFACE_FORMAT_R32_UINT				0x000000e4
230+#define NV50_SURFACE_FORMAT_R32_FLOAT				0x000000e5
231+#define NV50_SURFACE_FORMAT_BGRX8_UNORM				0x000000e6
232+#define NV50_SURFACE_FORMAT_BGRX8_SRGB				0x000000e7
233+#define NV50_SURFACE_FORMAT_B5G6R5_UNORM			0x000000e8
234+#define NV50_SURFACE_FORMAT_BGR5_A1_UNORM			0x000000e9
235+#define NV50_SURFACE_FORMAT_RG8_UNORM				0x000000ea
236+#define NV50_SURFACE_FORMAT_RG8_SNORM				0x000000eb
237+#define NV50_SURFACE_FORMAT_RG8_SINT				0x000000ec
238+#define NV50_SURFACE_FORMAT_RG8_UINT				0x000000ed
239+#define NV50_SURFACE_FORMAT_R16_UNORM				0x000000ee
240+#define NV50_SURFACE_FORMAT_R16_SNORM				0x000000ef
241+#define NV50_SURFACE_FORMAT_R16_SINT				0x000000f0
242+#define NV50_SURFACE_FORMAT_R16_UINT				0x000000f1
243+#define NV50_SURFACE_FORMAT_R16_FLOAT				0x000000f2
244+#define NV50_SURFACE_FORMAT_R8_UNORM				0x000000f3
245+#define NV50_SURFACE_FORMAT_R8_SNORM				0x000000f4
246+#define NV50_SURFACE_FORMAT_R8_SINT				0x000000f5
247+#define NV50_SURFACE_FORMAT_R8_UINT				0x000000f6
248+#define NV50_SURFACE_FORMAT_A8_UNORM				0x000000f7
249+#define NV50_SURFACE_FORMAT_BGR5_X1_UNORM			0x000000f8
250+#define NV50_SURFACE_FORMAT_RGBX8_UNORM				0x000000f9
251+#define NV50_SURFACE_FORMAT_RGBX8_SRGB				0x000000fa
252+#define NV50_SURFACE_FORMAT_BGR5_X1_UNORM_UNKFB			0x000000fb
253+#define NV50_SURFACE_FORMAT_BGR5_X1_UNORM_UNKFC			0x000000fc
254+#define NV50_SURFACE_FORMAT_BGRX8_UNORM_UNKFD			0x000000fd
255+#define NV50_SURFACE_FORMAT_BGRX8_UNORM_UNKFE			0x000000fe
256+#define NV50_SURFACE_FORMAT_Y32_UINT_UNKFF			0x000000ff
257+#define NV50_ZETA_FORMAT_Z32_FLOAT				0x0000000a
258+#define NV50_ZETA_FORMAT_Z16_UNORM				0x00000013
259+#define NV50_ZETA_FORMAT_S8_Z24_UNORM				0x00000014
260+#define NV50_ZETA_FORMAT_Z24_X8_UNORM				0x00000015
261+#define NV50_ZETA_FORMAT_Z24_S8_UNORM				0x00000016
262+#define NV50_ZETA_FORMAT_Z24_C8_UNORM				0x00000018
263+#define NV50_ZETA_FORMAT_Z32_S8_X24_FLOAT			0x00000019
264+#define NV50_ZETA_FORMAT_Z24_X8_S8_C8_X16_UNORM			0x0000001d
265+#define NV50_ZETA_FORMAT_Z32_X8_C8_X16_FLOAT			0x0000001e
266+#define NV50_ZETA_FORMAT_Z32_S8_C8_X16_FLOAT			0x0000001f
267+#define NVE4_IMAGE_FORMAT_RGBA32_FLOAT				0x00000002
268+#define NVE4_IMAGE_FORMAT_RGBA32_SINT				0x00000003
269+#define NVE4_IMAGE_FORMAT_RGBA32_UINT				0x00000004
270+#define NVE4_IMAGE_FORMAT_RGBA16_UNORM				0x00000008
271+#define NVE4_IMAGE_FORMAT_RGBA16_SNORM				0x00000009
272+#define NVE4_IMAGE_FORMAT_RGBA16_SINT				0x0000000a
273+#define NVE4_IMAGE_FORMAT_RGBA16_UINT				0x0000000b
274+#define NVE4_IMAGE_FORMAT_RGBA16_FLOAT				0x0000000c
275+#define NVE4_IMAGE_FORMAT_RG32_FLOAT				0x0000000d
276+#define NVE4_IMAGE_FORMAT_RG32_SINT				0x0000000e
277+#define NVE4_IMAGE_FORMAT_RG32_UINT				0x0000000f
278+#define NVE4_IMAGE_FORMAT_RGB10_A2_UNORM			0x00000013
279+#define NVE4_IMAGE_FORMAT_RGB10_A2_UINT				0x00000015
280+#define NVE4_IMAGE_FORMAT_RGBA8_UNORM				0x00000018
281+#define NVE4_IMAGE_FORMAT_RGBA8_SNORM				0x0000001a
282+#define NVE4_IMAGE_FORMAT_RGBA8_SINT				0x0000001b
283+#define NVE4_IMAGE_FORMAT_RGBA8_UINT				0x0000001c
284+#define NVE4_IMAGE_FORMAT_RG16_UNORM				0x0000001d
285+#define NVE4_IMAGE_FORMAT_RG16_SNORM				0x0000001e
286+#define NVE4_IMAGE_FORMAT_RG16_SINT				0x0000001f
287+#define NVE4_IMAGE_FORMAT_RG16_UINT				0x00000020
288+#define NVE4_IMAGE_FORMAT_RG16_FLOAT				0x00000021
289+#define NVE4_IMAGE_FORMAT_R11G11B10_FLOAT			0x00000024
290+#define NVE4_IMAGE_FORMAT_R32_SINT				0x00000027
291+#define NVE4_IMAGE_FORMAT_R32_UINT				0x00000028
292+#define NVE4_IMAGE_FORMAT_R32_FLOAT				0x00000029
293+#define NVE4_IMAGE_FORMAT_RG8_UNORM				0x0000002e
294+#define NVE4_IMAGE_FORMAT_RG8_SNORM				0x0000002f
295+#define NVE4_IMAGE_FORMAT_RG8_SINT				0x00000030
296+#define NVE4_IMAGE_FORMAT_RG8_UINT				0x00000031
297+#define NVE4_IMAGE_FORMAT_R16_UNORM				0x00000032
298+#define NVE4_IMAGE_FORMAT_R16_SNORM				0x00000033
299+#define NVE4_IMAGE_FORMAT_R16_SINT				0x00000034
300+#define NVE4_IMAGE_FORMAT_R16_UINT				0x00000035
301+#define NVE4_IMAGE_FORMAT_R16_FLOAT				0x00000036
302+#define NVE4_IMAGE_FORMAT_R8_UNORM				0x00000037
303+#define NVE4_IMAGE_FORMAT_R8_SNORM				0x00000038
304+#define NVE4_IMAGE_FORMAT_R8_SINT				0x00000039
305+#define NVE4_IMAGE_FORMAT_R8_UINT				0x0000003a
306+#define NV50_PGRAPH_DATA_ERROR_INVALID_OPERATION		0x00000003
307+#define NV50_PGRAPH_DATA_ERROR_INVALID_VALUE			0x00000004
308+#define NV50_PGRAPH_DATA_ERROR_INVALID_ENUM			0x00000005
309+#define NV50_PGRAPH_DATA_ERROR_INVALID_OBJECT			0x00000008
310+#define NV50_PGRAPH_DATA_ERROR_READ_ONLY_OBJECT			0x00000009
311+#define NV50_PGRAPH_DATA_ERROR_SUPERVISOR_OBJECT		0x0000000a
312+#define NV50_PGRAPH_DATA_ERROR_INVALID_ADDRESS_ALIGNMENT	0x0000000b
313+#define NV50_PGRAPH_DATA_ERROR_INVALID_BITFIELD			0x0000000c
314+#define NV50_PGRAPH_DATA_ERROR_BEGIN_END_ACTIVE			0x0000000d
315+#define NV50_PGRAPH_DATA_ERROR_SEMANTIC_COLOR_BACK_OVER_LIMIT	0x0000000e
316+#define NV50_PGRAPH_DATA_ERROR_VIEWPORT_ID_NEEDS_GP		0x0000000f
317+#define NV50_PGRAPH_DATA_ERROR_RT_DOUBLE_BIND			0x00000010
318+#define NV50_PGRAPH_DATA_ERROR_RT_TYPES_MISMATCH		0x00000011
319+#define NV50_PGRAPH_DATA_ERROR_RT_LINEAR_WITH_ZETA		0x00000012
320+#define NV50_PGRAPH_DATA_ERROR_FP_TOO_FEW_REGS			0x00000015
321+#define NV50_PGRAPH_DATA_ERROR_ZETA_FORMAT_CSAA_MISMATCH	0x00000016
322+#define NV50_PGRAPH_DATA_ERROR_RT_LINEAR_WITH_MSAA		0x00000017
323+#define NV50_PGRAPH_DATA_ERROR_FP_INTERPOLANT_START_OVER_LIMIT	0x00000018
324+#define NV50_PGRAPH_DATA_ERROR_SEMANTIC_LAYER_OVER_LIMIT	0x00000019
325+#define NV50_PGRAPH_DATA_ERROR_RT_INVALID_ALIGNMENT		0x0000001a
326+#define NV50_PGRAPH_DATA_ERROR_SAMPLER_OVER_LIMIT		0x0000001b
327+#define NV50_PGRAPH_DATA_ERROR_TEXTURE_OVER_LIMIT		0x0000001c
328+#define NV50_PGRAPH_DATA_ERROR_GP_TOO_MANY_OUTPUTS		0x0000001e
329+#define NV50_PGRAPH_DATA_ERROR_RT_BPP128_WITH_MS8		0x0000001f
330+#define NV50_PGRAPH_DATA_ERROR_Z_OUT_OF_BOUNDS			0x00000021
331+#define NV50_PGRAPH_DATA_ERROR_XY_OUT_OF_BOUNDS			0x00000023
332+#define NV50_PGRAPH_DATA_ERROR_VP_ZERO_INPUTS			0x00000024
333+#define NV50_PGRAPH_DATA_ERROR_CP_MORE_PARAMS_THAN_SHARED	0x00000027
334+#define NV50_PGRAPH_DATA_ERROR_CP_NO_REG_SPACE_STRIPED		0x00000028
335+#define NV50_PGRAPH_DATA_ERROR_CP_NO_REG_SPACE_PACKED		0x00000029
336+#define NV50_PGRAPH_DATA_ERROR_CP_NOT_ENOUGH_WARPS		0x0000002a
337+#define NV50_PGRAPH_DATA_ERROR_CP_BLOCK_SIZE_MISMATCH		0x0000002b
338+#define NV50_PGRAPH_DATA_ERROR_CP_NOT_ENOUGH_LOCAL_WARPS	0x0000002c
339+#define NV50_PGRAPH_DATA_ERROR_CP_NOT_ENOUGH_STACK_WARPS	0x0000002d
340+#define NV50_PGRAPH_DATA_ERROR_CP_NO_BLOCKDIM_LATCH		0x0000002e
341+#define NV50_PGRAPH_DATA_ERROR_ENG2D_FORMAT_MISMATCH		0x00000031
342+#define NV50_PGRAPH_DATA_ERROR_ENG2D_OPERATION_ILLEGAL_FOR_DST_FORMAT	0x00000033
343+#define NV50_PGRAPH_DATA_ERROR_ENG2D_FORMAT_MISMATCH_B		0x00000034
344+#define NV50_PGRAPH_DATA_ERROR_PRIMITIVE_ID_NEEDS_GP		0x0000003f
345+#define NV50_PGRAPH_DATA_ERROR_SEMANTIC_VIEWPORT_OVER_LIMIT	0x00000044
346+#define NV50_PGRAPH_DATA_ERROR_SEMANTIC_COLOR_FRONT_OVER_LIMIT	0x00000045
347+#define NV50_PGRAPH_DATA_ERROR_LAYER_ID_NEEDS_GP		0x00000046
348+#define NV50_PGRAPH_DATA_ERROR_SEMANTIC_CLIP_OVER_LIMIT		0x00000047
349+#define NV50_PGRAPH_DATA_ERROR_SEMANTIC_PTSZ_OVER_LIMIT		0x00000048
350+#define NV50_PGRAPH_DATA_ERROR_RT_LINEAR_WITH_ZETA_NVC0		0x00000098
351+#define NV50_PGRAPH_DATA_ERROR_ENG2D_UNALIGNED_PITCH_NVC0	0x000000a5
352+#define NV50_QUERY__SIZE					0x00000010
353+#define NV50_QUERY_COUNTER					0x00000000
354+
355+#define NV50_QUERY_RES						0x00000004
356+
357+#define NV50_QUERY_TIME						0x00000008
358+
359+
360+#endif /* NV50_DEFS_XML */
+442, -0
  1@@ -0,0 +1,442 @@
  2+#ifndef NV_OBJECT_XML
  3+#define NV_OBJECT_XML
  4+
  5+/* Autogenerated file, DO NOT EDIT manually!
  6+
  7+This file was generated by the rules-ng-ng headergen tool in this git repository:
  8+http://github.com/envytools/envytools/
  9+git clone https://github.com/envytools/envytools.git
 10+
 11+The rules-ng-ng source files this header was generated from are:
 12+- /home/michael/src/envytools/rnndb/root.xml                     (    514 bytes, from 2014-01-29 23:36:47)
 13+- /home/michael/src/envytools/rnndb/copyright.xml                (   6452 bytes, from 2014-01-29 23:36:47)
 14+- /home/michael/src/envytools/rnndb/nv_mmio.xml                  (   7086 bytes, from 2014-01-29 23:36:47)
 15+- /home/michael/src/envytools/rnndb/nvchipsets.xml               (   4092 bytes, from 2014-01-29 23:36:47)
 16+- /home/michael/src/envytools/rnndb/bus/pmc.xml                  (  11084 bytes, from 2014-01-29 23:36:47)
 17+- /home/michael/src/envytools/rnndb/bus/pbus.xml                 (  19828 bytes, from 2014-01-29 23:36:47)
 18+- /home/michael/src/envytools/rnndb/nv50_defs.xml                (  16877 bytes, from 2014-01-29 23:36:47)
 19+- /home/michael/src/envytools/rnndb/memory/nv50_vm.xml           (   9860 bytes, from 2014-01-29 23:36:47)
 20+- /home/michael/src/envytools/rnndb/display/nv_vga.xml           (  13113 bytes, from 2014-01-29 23:36:47)
 21+- /home/michael/src/envytools/rnndb/bus/pci.xml                  (  17502 bytes, from 2014-01-29 23:36:47)
 22+- /home/michael/src/envytools/rnndb/fifo/nv01_pfifo.xml          (  10607 bytes, from 2014-01-29 23:36:47)
 23+- /home/michael/src/envytools/rnndb/fifo/nv04_pfifo.xml          (  24125 bytes, from 2014-01-29 23:36:47)
 24+- /home/michael/src/envytools/rnndb/fifo/nv50_pfifo.xml          (  23242 bytes, from 2014-01-29 23:36:47)
 25+- /home/michael/src/envytools/rnndb/fifo/nvc0_pfifo.xml          (  26418 bytes, from 2014-01-29 23:36:47)
 26+- /home/michael/src/envytools/rnndb/memory/nvc0_vm.xml           (   8573 bytes, from 2014-01-29 23:36:47)
 27+- /home/michael/src/envytools/rnndb/pm/nv40_pclock.xml           (   1171 bytes, from 2014-01-29 23:36:47)
 28+- /home/michael/src/envytools/rnndb/pm/nv50_pclock.xml           (  16532 bytes, from 2014-01-29 23:36:47)
 29+- /home/michael/src/envytools/rnndb/pm/nva3_pclock.xml           (   4463 bytes, from 2014-01-29 23:36:47)
 30+- /home/michael/src/envytools/rnndb/display/nv10_pvideo.xml      (    451 bytes, from 2014-01-29 23:36:47)
 31+- /home/michael/src/envytools/rnndb/bus/ptimer.xml               (   2287 bytes, from 2014-01-29 23:36:47)
 32+- /home/michael/src/envytools/rnndb/nv10_pcounter.xml            (   5914 bytes, from 2014-01-29 23:36:47)
 33+- /home/michael/src/envytools/rnndb/nv40_pcounter.xml            (   9692 bytes, from 2014-01-29 23:36:47)
 34+- /home/michael/src/envytools/rnndb/vdec/vpe/pmpeg.xml           (  12766 bytes, from 2014-01-29 23:36:47)
 35+- /home/michael/src/envytools/rnndb/vdec/vpe/pvpe.xml            (    704 bytes, from 2014-01-29 23:36:47)
 36+- /home/michael/src/envytools/rnndb/vdec/vpe/mpeg_fifo.xml       (   2622 bytes, from 2014-01-29 23:36:47)
 37+- /home/michael/src/envytools/rnndb/fifo/nv_object.xml           (  14664 bytes, from 2014-01-29 23:36:47)
 38+- /home/michael/src/envytools/rnndb/vdec/vpe/pme.xml             (   5124 bytes, from 2014-01-29 23:36:47)
 39+- /home/michael/src/envytools/rnndb/display/nv17_ptv.xml         (    458 bytes, from 2014-01-29 23:36:47)
 40+- /home/michael/src/envytools/rnndb/io/pnvio.xml                 (  32034 bytes, from 2014-01-29 23:36:47)
 41+- /home/michael/src/envytools/rnndb/vdec/vpe/pvp1.xml            (   2111 bytes, from 2014-01-29 23:36:47)
 42+- /home/michael/src/envytools/rnndb/vdec/vp2/pvp2.xml            (   1618 bytes, from 2014-01-29 23:36:47)
 43+- /home/michael/src/envytools/rnndb/vdec/vp2/xtensa.xml          (   5386 bytes, from 2014-01-29 23:36:47)
 44+- /home/michael/src/envytools/rnndb/pm/ptherm.xml                (  32292 bytes, from 2014-01-29 23:36:47)
 45+- /home/michael/src/envytools/rnndb/bus/pfuse.xml                (    803 bytes, from 2014-01-29 23:36:47)
 46+- /home/michael/src/envytools/rnndb/bus/punits.xml               (   4193 bytes, from 2014-01-29 23:36:47)
 47+- /home/michael/src/envytools/rnndb/vdec/vp3/pvld.xml            (  13233 bytes, from 2014-01-29 23:36:47)
 48+- /home/michael/src/envytools/rnndb/falcon.xml                   (  16884 bytes, from 2014-01-29 23:36:47)
 49+- /home/michael/src/envytools/rnndb/falcon_crypt.xml             (   3446 bytes, from 2014-01-29 23:36:47)
 50+- /home/michael/src/envytools/rnndb/vdec/vp3/pvdec.xml           (  14115 bytes, from 2014-01-29 23:36:47)
 51+- /home/michael/src/envytools/rnndb/vdec/vp3/pppp.xml            (   8830 bytes, from 2014-01-29 23:36:47)
 52+- /home/michael/src/envytools/rnndb/nv_defs.xml                  (   4399 bytes, from 2014-01-29 23:36:47)
 53+- /home/michael/src/envytools/rnndb/vdec/vp3/pcrypt3.xml         (   1003 bytes, from 2014-01-29 23:36:47)
 54+- /home/michael/src/envytools/rnndb/nv84_punk089.xml             (    449 bytes, from 2014-01-29 23:36:47)
 55+- /home/michael/src/envytools/rnndb/display/nv03_prmvio.xml      (    654 bytes, from 2014-01-29 23:36:47)
 56+- /home/michael/src/envytools/rnndb/memory/nv01_pdma.xml         (   5345 bytes, from 2014-01-29 23:36:47)
 57+- /home/michael/src/envytools/rnndb/memory/nv03_pfb.xml          (   4511 bytes, from 2014-01-29 23:36:47)
 58+- /home/michael/src/envytools/rnndb/memory/nv10_pfb.xml          (  25274 bytes, from 2014-01-29 23:36:47)
 59+- /home/michael/src/envytools/rnndb/memory/nv_pfb.xml            (   1135 bytes, from 2014-01-29 23:36:47)
 60+- /home/michael/src/envytools/rnndb/memory/nvc0_pffb.xml         (   2707 bytes, from 2014-01-29 23:36:47)
 61+- /home/michael/src/envytools/rnndb/io/pstraps.xml               (   8077 bytes, from 2014-01-29 23:36:47)
 62+- /home/michael/src/envytools/rnndb/vdec/vp2/pcrypt2.xml         (   3578 bytes, from 2014-01-29 23:36:47)
 63+- /home/michael/src/envytools/rnndb/vdec/vp2/pbsp.xml            (  10624 bytes, from 2014-01-29 23:36:47)
 64+- /home/michael/src/envytools/rnndb/fifo/pcopy.xml               (   7843 bytes, from 2014-01-29 23:36:47)
 65+- /home/michael/src/envytools/rnndb/display/nva3_pcodec.xml      (    448 bytes, from 2014-01-29 23:36:47)
 66+- /home/michael/src/envytools/rnndb/display/nva3_pkfuse.xml      (    447 bytes, from 2014-01-29 23:36:47)
 67+- /home/michael/src/envytools/rnndb/pm/pdaemon.xml               (  17194 bytes, from 2014-01-29 23:36:47)
 68+- /home/michael/src/envytools/rnndb/memory/nvc0_pbfb.xml         (   2898 bytes, from 2014-01-29 23:36:47)
 69+- /home/michael/src/envytools/rnndb/bus/pibus.xml                (   8356 bytes, from 2014-01-29 23:36:47)
 70+- /home/michael/src/envytools/rnndb/pm/nvc0_pclock.xml           (   7279 bytes, from 2014-01-29 23:36:47)
 71+- /home/michael/src/envytools/rnndb/memory/nvc0_pp2p.xml         (   1946 bytes, from 2014-01-29 23:36:47)
 72+- /home/michael/src/envytools/rnndb/memory/nvc0_pxbar.xml        (   1156 bytes, from 2014-01-29 23:36:47)
 73+- /home/michael/src/envytools/rnndb/memory/nvc0_pmfb.xml         (   3631 bytes, from 2014-01-29 23:36:47)
 74+- /home/michael/src/envytools/rnndb/nvc0_pcounter.xml            (  12613 bytes, from 2014-01-29 23:36:47)
 75+- /home/michael/src/envytools/rnndb/vdec/pvcomp.xml              (   8682 bytes, from 2014-01-29 23:36:47)
 76+- /home/michael/src/envytools/rnndb/vdec/pvenc.xml               (   1233 bytes, from 2014-01-29 23:36:47)
 77+- /home/michael/src/envytools/rnndb/display/nvd9_punk1c3.xml     (    978 bytes, from 2014-01-29 23:36:47)
 78+- /home/michael/src/envytools/rnndb/io/pmedia.xml                (    432 bytes, from 2014-01-29 23:36:47)
 79+- /home/michael/src/envytools/rnndb/nv01_paudio.xml              (   1863 bytes, from 2014-01-29 23:36:47)
 80+- /home/michael/src/envytools/rnndb/extdev/ad1848.xml            (   5260 bytes, from 2014-01-29 23:36:47)
 81+- /home/michael/src/envytools/rnndb/graph/nv01_pgraph.xml        (  14241 bytes, from 2014-01-29 23:36:47)
 82+- /home/michael/src/envytools/rnndb/graph/nv01_2d.xml            (  36779 bytes, from 2014-01-29 23:36:47)
 83+- /home/michael/src/envytools/rnndb/graph/nv03_pgraph.xml        (   4011 bytes, from 2014-01-29 23:36:47)
 84+- /home/michael/src/envytools/rnndb/graph/nv04_pgraph.xml        (  11363 bytes, from 2014-01-29 23:36:47)
 85+- /home/michael/src/envytools/rnndb/graph/nv50_pgraph.xml        (  54643 bytes, from 2014-01-29 23:36:47)
 86+- /home/michael/src/envytools/rnndb/graph/nvc0_pgraph/pgraph.xml (  23719 bytes, from 2014-01-29 23:36:47)
 87+- /home/michael/src/envytools/rnndb/graph/nvc0_pgraph/ctxctl.xml (  12648 bytes, from 2014-01-29 23:36:47)
 88+- /home/michael/src/envytools/rnndb/graph/nvc0_pgraph/gpc.xml    (   7276 bytes, from 2014-01-29 23:36:47)
 89+- /home/michael/src/envytools/rnndb/graph/nvc0_pgraph/tpc.xml    (  15311 bytes, from 2014-01-29 23:36:47)
 90+- /home/michael/src/envytools/rnndb/graph/nvc0_pgraph/ppc.xml    (   1170 bytes, from 2014-01-29 23:36:47)
 91+- /home/michael/src/envytools/rnndb/graph/nvc0_pgraph/rop.xml    (   2143 bytes, from 2014-01-29 23:36:47)
 92+- /home/michael/src/envytools/rnndb/graph/nv03_pdma.xml          (   2293 bytes, from 2014-01-29 23:36:47)
 93+- /home/michael/src/envytools/rnndb/display/nv01_pfb.xml         (   4033 bytes, from 2014-01-29 23:36:47)
 94+- /home/michael/src/envytools/rnndb/display/nv03_pcrtc.xml       (   1114 bytes, from 2014-01-29 23:36:47)
 95+- /home/michael/src/envytools/rnndb/memory/nv01_pram.xml         (   1241 bytes, from 2014-01-29 23:36:47)
 96+- /home/michael/src/envytools/rnndb/io/pchipid.xml               (    494 bytes, from 2014-01-29 23:36:47)
 97+- /home/michael/src/envytools/rnndb/display/nv01_pdac.xml        (   4639 bytes, from 2014-01-29 23:36:47)
 98+- /home/michael/src/envytools/rnndb/io/peeprom.xml               (    703 bytes, from 2014-01-29 23:36:47)
 99+- /home/michael/src/envytools/rnndb/display/nv03_pramdac.xml     (   4455 bytes, from 2014-01-29 23:36:47)
100+- /home/michael/src/envytools/rnndb/display/nv50_pdisplay.xml    (  38497 bytes, from 2014-01-29 23:36:47)
101+- /home/michael/src/envytools/rnndb/bus/prm.xml                  (   5098 bytes, from 2014-01-29 23:36:47)
102+- /home/michael/src/envytools/rnndb/display/nv_evo.xml           (  10560 bytes, from 2014-01-29 23:36:47)
103+- /home/michael/src/envytools/rnndb/fifo/nv_objects.xml          (   1054 bytes, from 2014-01-29 23:36:47)
104+- /home/michael/src/envytools/rnndb/graph/nv_m2mf.xml            (   2701 bytes, from 2014-01-29 23:36:47)
105+- /home/michael/src/envytools/rnndb/graph/nvc0_m2mf.xml          (   2788 bytes, from 2014-01-29 23:36:47)
106+- /home/michael/src/envytools/rnndb/graph/nv04_dvd.xml           (   3005 bytes, from 2014-01-29 23:36:47)
107+- /home/michael/src/envytools/rnndb/graph/nv03_3d.xml            (   5214 bytes, from 2014-01-29 23:36:47)
108+- /home/michael/src/envytools/rnndb/graph/nv04_3d.xml            (  17770 bytes, from 2014-01-29 23:36:47)
109+- /home/michael/src/envytools/rnndb/graph/nv_3ddefs.xml          (  16394 bytes, from 2014-01-29 23:36:47)
110+- /home/michael/src/envytools/rnndb/graph/nv10_3d.xml            (  18441 bytes, from 2014-01-29 23:36:47)
111+- /home/michael/src/envytools/rnndb/graph/nv20_3d.xml            (  21106 bytes, from 2014-01-29 23:36:47)
112+- /home/michael/src/envytools/rnndb/graph/nv30-40_3d.xml         (  32461 bytes, from 2014-01-29 23:36:47)
113+- /home/michael/src/envytools/rnndb/graph/nv50_2d.xml            (  11441 bytes, from 2014-01-29 23:36:47)
114+- /home/michael/src/envytools/rnndb/graph/nv50_3d.xml            (  65928 bytes, from 2014-01-29 23:36:47)
115+- /home/michael/src/envytools/rnndb/graph/nv50_compute.xml       (  14047 bytes, from 2014-01-29 23:36:47)
116+- /home/michael/src/envytools/rnndb/graph/nvc0_3d.xml            (  59735 bytes, from 2014-01-29 23:36:47)
117+- /home/michael/src/envytools/rnndb/graph/nve4_p2mf.xml          (   2378 bytes, from 2014-01-29 23:36:47)
118+- /home/michael/src/envytools/rnndb/graph/nvc0_compute.xml       (  11150 bytes, from 2014-01-29 23:36:47)
119+- /home/michael/src/envytools/rnndb/graph/nve4_compute.xml       (  10179 bytes, from 2014-01-29 23:36:47)
120+- /home/michael/src/envytools/rnndb/vdec/vpe/me_fifo.xml         (   1690 bytes, from 2014-01-29 23:36:47)
121+- /home/michael/src/envytools/rnndb/vdec/vpe/vp1_fifo.xml        (    675 bytes, from 2014-01-29 23:36:47)
122+- /home/michael/src/envytools/rnndb/vdec/vp2/crypt2_fifo.xml     (   2077 bytes, from 2014-01-29 23:36:47)
123+- /home/michael/src/envytools/rnndb/fifo/nve4_copy.xml           (   3928 bytes, from 2014-01-29 23:36:47)
124+- /home/michael/src/envytools/rnndb/graph/nv50_texture.xml       (   8648 bytes, from 2014-01-29 23:36:47)
125+- /home/michael/src/envytools/rnndb/graph/nvc0_shaders.xml       (   7409 bytes, from 2014-01-29 23:36:47)
126+- /home/michael/src/envytools/rnndb/vdec/vpe/mpeg_cmd.xml        (   7682 bytes, from 2014-01-29 23:36:47)
127+- /home/michael/src/envytools/rnndb/extdev/adt7473.xml           (  11411 bytes, from 2014-01-29 23:36:47)
128+
129+Copyright (C) 2006-2014 by the following authors:
130+- Artur Huillet <arthur.huillet@free.fr> (ahuillet)
131+- Ben Skeggs (darktama, darktama_)
132+- B. R. <koala_br@users.sourceforge.net> (koala_br)
133+- Carlos Martin <carlosmn@users.sf.net> (carlosmn)
134+- Christoph Bumiller <e0425955@student.tuwien.ac.at> (calim, chrisbmr)
135+- Dawid Gajownik <gajownik@users.sf.net> (gajownik)
136+- Dmitry Baryshkov
137+- Dmitry Eremin-Solenikov <lumag@users.sf.net> (lumag)
138+- EdB <edb_@users.sf.net> (edb_)
139+- Erik Waling <erikwailing@users.sf.net> (erikwaling)
140+- Francisco Jerez <currojerez@riseup.net> (curro)
141+- imirkin <imirkin@users.sf.net> (imirkin)
142+- jb17bsome <jb17bsome@bellsouth.net> (jb17bsome)
143+- Jeremy Kolb <kjeremy@users.sf.net> (kjeremy)
144+- Laurent Carlier <lordheavym@gmail.com> (lordheavy)
145+- Luca Barbieri <luca@luca-barbieri.com> (lb, lb1)
146+- Maarten Maathuis <madman2003@gmail.com> (stillunknown)
147+- Marcin Koƛcielnicki <koriakin@0x04.net> (mwk, koriakin)
148+- Mark Carey <mark.carey@gmail.com> (careym)
149+- Matthieu Castet <matthieu.castet@parrot.com> (mat-c)
150+- nvidiaman <nvidiaman@users.sf.net> (nvidiaman)
151+- Patrice Mandin <patmandin@gmail.com> (pmandin, pmdata)
152+- Pekka Paalanen <pq@iki.fi> (pq, ppaalanen)
153+- Peter Popov <ironpeter@users.sf.net> (ironpeter)
154+- Richard Hughes <hughsient@users.sf.net> (hughsient)
155+- Rudi Cilibrasi <cilibrar@users.sf.net> (cilibrar)
156+- Serge Martin
157+- Simon Raffeiner
158+- Stephane Loeuillet <leroutier@users.sf.net> (leroutier)
159+- Stephane Marchesin <stephane.marchesin@gmail.com> (marcheu)
160+- sturmflut <sturmflut@users.sf.net> (sturmflut)
161+- Sylvain Munaut <tnt@246tNt.com>
162+- Victor Stinner <victor.stinner@haypocalc.com> (haypo)
163+- Wladmir van der Laan <laanwj@gmail.com> (miathan6)
164+- Younes Manton <younes.m@gmail.com> (ymanton)
165+
166+Permission is hereby granted, free of charge, to any person obtaining
167+a copy of this software and associated documentation files (the
168+"Software"), to deal in the Software without restriction, including
169+without limitation the rights to use, copy, modify, merge, publish,
170+distribute, sublicense, and/or sell copies of the Software, and to
171+permit persons to whom the Software is furnished to do so, subject to
172+the following conditions:
173+
174+The above copyright notice and this permission notice (including the
175+next paragraph) shall be included in all copies or substantial
176+portions of the Software.
177+
178+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
179+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
180+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
181+IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
182+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
183+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
184+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
185+*/
186+
187+
188+#define NV01_DMA_FROM_MEMORY					0x00000002
189+#define NV01_DMA_TO_MEMORY					0x00000003
190+#define NV01_NULL						0x00000030
191+#define NV03_DMA_IN_MEMORY					0x0000003d
192+#define NV01_OP_CLIP						0x00000010
193+#define NV01_OP_BLEND_AND					0x00000011
194+#define NV01_BETA						0x00000012
195+#define NV04_BETA4						0x00000072
196+#define NV01_OP_ROP_AND						0x00000013
197+#define NV01_ROP						0x00000014
198+#define NV03_ROP						0x00000043
199+#define NV01_OP_CHROMA						0x00000015
200+#define NV01_OP_PLANE_SWITCH					0x00000016
201+#define NV01_CHROMA						0x00000017
202+#define NV04_CHROMA						0x00000057
203+#define NV01_PATTERN						0x00000018
204+#define NV04_PATTERN						0x00000044
205+#define NV01_CLIP						0x00000019
206+#define NV01_OP_SRCCOPY_AND					0x00000064
207+#define NV03_OP_SRCCOPY						0x00000065
208+#define NV04_OP_SRCCOPY_PREMULT					0x00000066
209+#define NV04_OP_BLEND_PREMULT					0x00000067
210+#define NV01_POINT						0x0000001a
211+#define NV01_LINE						0x0000001b
212+#define NV01_LIN						0x0000001c
213+#define NV04_LIN						0x0000005c
214+#define NV30_LIN						0x0000035c
215+#define NV40_LIN						0x0000305c
216+#define NV01_TRI						0x0000001d
217+#define NV04_TRI						0x0000005d
218+#define NV01_RECT						0x0000001e
219+#define NV04_RECT						0x0000005e
220+#define NV01_BLIT						0x0000001f
221+#define NV04_BLIT						0x0000005f
222+#define NV15_BLIT						0x0000009f
223+#define NV01_IFM						0x00000020
224+#define NV01_IFC						0x00000021
225+#define NV04_IFC						0x00000061
226+#define NV05_IFC						0x00000065
227+#define NV10_IFC						0x0000008a
228+#define NV30_IFC						0x0000038a
229+#define NV40_IFC						0x0000308a
230+#define NV01_BITMAP						0x00000022
231+#define NV01_ITM						0x00000025
232+#define NV03_SIFC						0x00000036
233+#define NV04_SIFC						0x00000076
234+#define NV05_SIFC						0x00000066
235+#define NV30_SIFC						0x00000366
236+#define NV40_SIFC						0x00003066
237+#define NV03_SIFM						0x00000037
238+#define NV04_SIFM						0x00000077
239+#define NV05_SIFM						0x00000063
240+#define NV10_SIFM						0x00000089
241+#define NV30_SIFM						0x00000389
242+#define NV40_SIFM						0x00003089
243+#define NV50_SIFM						0x00005089
244+#define NV03_GDI						0x0000004b
245+#define NV04_GDI						0x0000004a
246+#define NV04_SURFACE_SWZ					0x00000052
247+#define NV20_SURFACE_SWZ					0x0000009e
248+#define NV30_SURFACE_SWZ					0x0000039e
249+#define NV40_SURFACE_SWZ					0x0000309e
250+#define NV03_SURFACE_DST					0x00000058
251+#define NV03_SURFACE_SRC					0x00000059
252+#define NV04_SURFACE_2D						0x00000042
253+#define NV10_SURFACE_2D						0x00000062
254+#define NV30_SURFACE_2D						0x00000362
255+#define NV40_SURFACE_2D						0x00003062
256+#define NV50_SURFACE_2D						0x00005062
257+#define NV04_INDEX						0x00000060
258+#define NV05_INDEX						0x00000064
259+#define NV30_INDEX						0x00000364
260+#define NV40_INDEX						0x00003064
261+#define NV10_TEXUPLOAD						0x0000007b
262+#define NV30_TEXUPLOAD						0x0000037b
263+#define NV40_TEXUPLOAD						0x0000307b
264+#define NV01_TEXLIN						0x00000023
265+#define NV01_TEXQUAD						0x00000024
266+#define NV01_TEXLINBETA						0x00000034
267+#define NV01_TEXQUADBETA					0x00000035
268+#define NV04_DVD_SUBPICTURE					0x00000038
269+#define NV10_DVD_SUBPICTURE					0x00000088
270+#define NV03_M2MF						0x00000039
271+#define NV50_M2MF						0x00005039
272+#define NVC0_M2MF						0x00009039
273+#define NVE4_P2MF						0x0000a040
274+#define NVF0_P2MF						0x0000a140
275+#define NV03_SURFACE_COLOR					0x0000005a
276+#define NV03_SURFACE_ZETA					0x0000005b
277+#define NV03_TEXTURED_TRIANGLE					0x00000048
278+#define NV04_TEXTURED_TRIANGLE					0x00000054
279+#define NV10_TEXTURED_TRIANGLE					0x00000094
280+#define NV04_SURFACE_3D						0x00000053
281+#define NV10_SURFACE_3D						0x00000093
282+#define NV04_MULTITEX_TRIANGLE					0x00000055
283+#define NV10_MULTITEX_TRIANGLE					0x00000095
284+#define NV10_3D							0x00000056
285+#define NV15_3D							0x00000096
286+#define NV11_3D							0x00000098
287+#define NV17_3D							0x00000099
288+#define NV20_3D							0x00000097
289+#define NV25_3D							0x00000597
290+#define NV30_3D							0x00000397
291+#define NV35_3D							0x00000497
292+#define NV34_3D							0x00000697
293+#define NV40_3D							0x00004097
294+#define NV44_3D							0x00004497
295+#define NV50_3D							0x00005097
296+#define NV84_3D							0x00008297
297+#define NVA0_3D							0x00008397
298+#define NVA3_3D							0x00008597
299+#define NVAF_3D							0x00008697
300+#define NVC0_3D							0x00009097
301+#define NVC1_3D							0x00009197
302+#define NVC8_3D							0x00009297
303+#define NVE4_3D							0x0000a097
304+#define NVF0_3D							0x0000a197
305+#define NV50_2D							0x0000502d
306+#define NVC0_2D							0x0000902d
307+#define NV50_COMPUTE						0x000050c0
308+#define NVA3_COMPUTE						0x000085c0
309+#define NVC0_COMPUTE						0x000090c0
310+#define NVC8_COMPUTE						0x000092c0
311+#define NVE4_COMPUTE						0x0000a0c0
312+#define NVF0_COMPUTE						0x0000a1c0
313+#define NV84_CRYPT2						0x000074c1
314+#define NVE4_COPY						0x0000a0b5
315+#define NV31_MPEG						0x00003174
316+#define NV84_MPEG						0x00008274
317+#define NV40_ME							0x00004075
318+#define NV41_VP1						0x00004176
319+#define NV01_SUBCHAN__SIZE					0x00008000
320+#define NV01_SUBCHAN						0x00000000
321+
322+#define NV01_SUBCHAN_OBJECT					0x00000000
323+
324+#define NVC0_SUBCHAN_NOP					0x00000008
325+
326+#define NV84_SUBCHAN_SEMAPHORE_ADDRESS_HIGH			0x00000010
327+
328+#define NV84_SUBCHAN_SEMAPHORE_ADDRESS_LOW			0x00000014
329+
330+#define NV84_SUBCHAN_SEMAPHORE_SEQUENCE				0x00000018
331+
332+#define NV84_SUBCHAN_SEMAPHORE_TRIGGER				0x0000001c
333+#define NV84_SUBCHAN_SEMAPHORE_TRIGGER_ACTION__MASK		0x0000000f
334+#define NV84_SUBCHAN_SEMAPHORE_TRIGGER_ACTION__SHIFT		0
335+#define NV84_SUBCHAN_SEMAPHORE_TRIGGER_ACTION_ACQUIRE_EQUAL	0x00000001
336+#define NV84_SUBCHAN_SEMAPHORE_TRIGGER_ACTION_RELEASE		0x00000002
337+#define NV84_SUBCHAN_SEMAPHORE_TRIGGER_ACTION_ACQUIRE_GEQUAL	0x00000004
338+#define NVC0_SUBCHAN_SEMAPHORE_TRIGGER_ACTION_ACQUIRE_MASK	0x00000008
339+#define NVC0_SUBCHAN_SEMAPHORE_TRIGGER_YIELD			0x00001000
340+#define NVC0_SUBCHAN_SEMAPHORE_TRIGGER_UNK20			0x00100000
341+#define NVC0_SUBCHAN_SEMAPHORE_TRIGGER_SHORT			0x01000000
342+
343+#define NV84_SUBCHAN_NOTIFY_INTR				0x00000020
344+
345+#define NV84_SUBCHAN_WRCACHE_FLUSH				0x00000024
346+
347+#define NVAF_SUBCHAN_UNK28					0x00000028
348+
349+#define NVAF_SUBCHAN_UNK2C					0x0000002c
350+#define NVAF_SUBCHAN_UNK2C_UNK0__MASK				0x0fffffff
351+#define NVAF_SUBCHAN_UNK2C_UNK0__SHIFT				0
352+#define NVAF_SUBCHAN_UNK2C_UNK28				0x10000000
353+#define NVAF_SUBCHAN_UNK2C_UNK29__MASK				0xe0000000
354+#define NVAF_SUBCHAN_UNK2C_UNK29__SHIFT				29
355+#define NVAF_SUBCHAN_UNK2C_UNK29_UNK0				0x00000000
356+#define NVAF_SUBCHAN_UNK2C_UNK29_UNK1				0x20000000
357+#define NVAF_SUBCHAN_UNK2C_UNK29_UNK2				0x40000000
358+
359+#define NV10_SUBCHAN_REF_CNT					0x00000050
360+
361+#define NV1A_SUBCHAN_DMA_SEMAPHORE				0x00000060
362+
363+#define NV1A_SUBCHAN_SEMAPHORE_OFFSET				0x00000064
364+
365+#define NV1A_SUBCHAN_SEMAPHORE_ACQUIRE				0x00000068
366+
367+#define NV1A_SUBCHAN_SEMAPHORE_RELEASE				0x0000006c
368+
369+#define NVC0_SUBCHAN_UNK70					0x00000070
370+
371+#define NVC0_SUBCHAN_UNK74					0x00000074
372+
373+#define NVC0_SUBCHAN_UNK78					0x00000078
374+
375+#define NVC0_SUBCHAN_UNK7C					0x0000007c
376+
377+#define NV40_SUBCHAN_YIELD					0x00000080
378+
379+#define NV01_GRAPH						0x00000000
380+
381+#define NV04_GRAPH_NOP						0x00000100
382+
383+#define NV04_GRAPH_NOTIFY					0x00000104
384+#define NV04_GRAPH_NOTIFY_WRITE					0x00000000
385+#define NV04_GRAPH_NOTIFY_WRITE_AND_AWAKEN			0x00000001
386+
387+#define NVC0_GRAPH_NOTIFY_ADDRESS_HIGH				0x00000104
388+
389+#define NVC0_GRAPH_NOTIFY_ADDRESS_LOW				0x00000108
390+
391+#define NVC0_GRAPH_NOTIFY					0x0000010c
392+#define NVC0_GRAPH_NOTIFY_WRITE					0x00000000
393+#define NVC0_GRAPH_NOTIFY_WRITE_AND_AWAKEN			0x00000001
394+
395+#define NV50_GRAPH_SERIALIZE					0x00000110
396+
397+#define NVC0_GRAPH_MACRO_CODE_POS				0x00000114
398+
399+#define NVC0_GRAPH_MACRO_CODE_DATA				0x00000118
400+
401+#define NVC0_GRAPH_MACRO_ENTRY_POS				0x0000011c
402+
403+#define NVC0_GRAPH_MACRO_ENTRY_DATA				0x00000120
404+
405+#define NVC0_GRAPH_MACRO_UNK0124				0x00000124
406+
407+#define NVA3_GRAPH_UNK0120					0x00000120
408+
409+#define NVA3_GRAPH_UNK0124					0x00000124
410+
411+#define NVC0_GRAPH_COND_MASTER_ADDRESS_HIGH			0x00000130
412+
413+#define NVC0_GRAPH_COND_MASTER_ADDRESS_LOW			0x00000134
414+
415+#define NVC0_GRAPH_COND_MASTER_MODE				0x00000138
416+#define NVC0_GRAPH_COND_MASTER_MODE_NEVER			0x00000000
417+#define NVC0_GRAPH_COND_MASTER_MODE_ALWAYS			0x00000001
418+#define NVC0_GRAPH_COND_MASTER_MODE_RES_NON_ZERO		0x00000002
419+#define NVC0_GRAPH_COND_MASTER_MODE_EQUAL			0x00000003
420+#define NVC0_GRAPH_COND_MASTER_MODE_NOT_EQUAL			0x00000004
421+
422+#define NVC0_GRAPH_UNK013C					0x0000013c
423+
424+#define NV40_GRAPH_PM_TRIGGER					0x00000140
425+
426+#define NVC0_GRAPH_UNK0150					0x00000150
427+
428+#define NVC0_GRAPH_UNK0154					0x00000154
429+
430+#define NVC0_GRAPH_SCRATCH(i0)				       (0x00003400 + 0x4*(i0))
431+#define NVC0_GRAPH_SCRATCH__ESIZE				0x00000004
432+#define NVC0_GRAPH_SCRATCH__LEN					0x00000080
433+
434+#define NVC0_GRAPH_MACRO(i0)				       (0x00003800 + 0x8*(i0))
435+#define NVC0_GRAPH_MACRO__ESIZE					0x00000008
436+#define NVC0_GRAPH_MACRO__LEN					0x00000080
437+
438+#define NVC0_GRAPH_MACRO_PARAM(i0)			       (0x00003804 + 0x8*(i0))
439+#define NVC0_GRAPH_MACRO_PARAM__ESIZE				0x00000008
440+#define NVC0_GRAPH_MACRO_PARAM__LEN				0x00000080
441+
442+
443+#endif /* NV_OBJECT_XML */