nvfx: move nv04_2d to rules-ng-ng
This commit is contained in:
parent
d46c5ce7b6
commit
7d53a3b7a4
|
@ -0,0 +1,155 @@
|
|||
#ifndef NV_M2MF_XML
|
||||
#define NV_M2MF_XML
|
||||
|
||||
/* Autogenerated file, DO NOT EDIT manually!
|
||||
|
||||
This file was generated by the rules-ng-ng headergen tool in this git repository:
|
||||
http://0x04.net/cgit/index.cgi/rules-ng-ng
|
||||
git clone git://0x04.net/rules-ng-ng
|
||||
|
||||
The rules-ng-ng source files this header was generated from are:
|
||||
- nv_m2mf.xml ( 2710 bytes, from 2010-08-05 19:38:53)
|
||||
- copyright.xml ( 6503 bytes, from 2010-04-10 23:15:50)
|
||||
- nv_object.xml ( 10424 bytes, from 2010-08-05 19:38:53)
|
||||
- nvchipsets.xml ( 2824 bytes, from 2010-08-05 19:38:53)
|
||||
- nv_defs.xml ( 4437 bytes, from 2010-08-05 19:38:53)
|
||||
|
||||
Copyright (C) 2006-2010 by the following authors:
|
||||
- Artur Huillet <arthur.huillet@free.fr> (ahuillet)
|
||||
- Ben Skeggs (darktama, darktama_)
|
||||
- B. R. <koala_br@users.sourceforge.net> (koala_br)
|
||||
- Carlos Martin <carlosmn@users.sf.net> (carlosmn)
|
||||
- Christoph Bumiller <e0425955@student.tuwien.ac.at> (calim, chrisbmr)
|
||||
- Dawid Gajownik <gajownik@users.sf.net> (gajownik)
|
||||
- Dmitry Baryshkov
|
||||
- Dmitry Eremin-Solenikov <lumag@users.sf.net> (lumag)
|
||||
- EdB <edb_@users.sf.net> (edb_)
|
||||
- Erik Waling <erikwailing@users.sf.net> (erikwaling)
|
||||
- Francisco Jerez <currojerez@riseup.net> (curro, curro_, currojerez)
|
||||
- imirkin <imirkin@users.sf.net> (imirkin)
|
||||
- jb17bsome <jb17bsome@bellsouth.net> (jb17bsome)
|
||||
- Jeremy Kolb <kjeremy@users.sf.net> (kjeremy)
|
||||
- Laurent Carlier <lordheavym@gmail.com> (lordheavy)
|
||||
- Luca Barbieri <luca@luca-barbieri.com> (lb, lb1)
|
||||
- Maarten Maathuis <madman2003@gmail.com> (stillunknown)
|
||||
- Marcin Kościelnicki <koriakin@0x04.net> (mwk, koriakin)
|
||||
- Mark Carey <mark.carey@gmail.com> (careym)
|
||||
- Matthieu Castet <matthieu.castet@parrot.com> (mat-c)
|
||||
- nvidiaman <nvidiaman@users.sf.net> (nvidiaman)
|
||||
- Patrice Mandin <mandin.patrice@orange.fr> (pmandin, pmdata)
|
||||
- Pekka Paalanen <pq@iki.fi> (pq, ppaalanen)
|
||||
- Peter Popov <ironpeter@users.sf.net> (ironpeter)
|
||||
- Richard Hughes <hughsient@users.sf.net> (hughsient)
|
||||
- Rudi Cilibrasi <cilibrar@users.sf.net> (cilibrar)
|
||||
- Serge Martin
|
||||
- Simon Raffeiner
|
||||
- Stephane Loeuillet <leroutier@users.sf.net> (leroutier)
|
||||
- Stephane Marchesin <stephane.marchesin@gmail.com> (marcheu)
|
||||
- sturmflut <sturmflut@users.sf.net> (sturmflut)
|
||||
- Sylvain Munaut <tnt@246tNt.com>
|
||||
- Victor Stinner <victor.stinner@haypocalc.com> (haypo)
|
||||
- Wladmir van der Laan <laanwj@gmail.com> (miathan6)
|
||||
- Younes Manton <younes.m@gmail.com> (ymanton)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice (including the
|
||||
next paragraph) shall be included in all copies or substantial
|
||||
portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#define NV04_M2MF_DMA_NOTIFY 0x00000180
|
||||
|
||||
#define NV04_M2MF_DMA_BUFFER_IN 0x00000184
|
||||
|
||||
#define NV04_M2MF_DMA_BUFFER_OUT 0x00000188
|
||||
|
||||
|
||||
#define NV50_M2MF_LINEAR_IN 0x00000200
|
||||
|
||||
#define NV50_M2MF_TILING_MODE_IN 0x00000204
|
||||
|
||||
#define NV50_M2MF_TILING_PITCH_IN 0x00000208
|
||||
|
||||
#define NV50_M2MF_TILING_HEIGHT_IN 0x0000020c
|
||||
|
||||
#define NV50_M2MF_TILING_DEPTH_IN 0x00000210
|
||||
|
||||
#define NV50_M2MF_TILING_POSITION_IN_Z 0x00000214
|
||||
|
||||
#define NV50_M2MF_TILING_POSITION_IN 0x00000218
|
||||
#define NV50_M2MF_TILING_POSITION_IN_X__MASK 0x0000ffff
|
||||
#define NV50_M2MF_TILING_POSITION_IN_X__SHIFT 0
|
||||
#define NV50_M2MF_TILING_POSITION_IN_Y__MASK 0xffff0000
|
||||
#define NV50_M2MF_TILING_POSITION_IN_Y__SHIFT 16
|
||||
|
||||
#define NV50_M2MF_LINEAR_OUT 0x0000021c
|
||||
|
||||
#define NV50_M2MF_TILING_MODE_OUT 0x00000220
|
||||
|
||||
#define NV50_M2MF_TILING_PITCH_OUT 0x00000224
|
||||
|
||||
#define NV50_M2MF_TILING_HEIGHT_OUT 0x00000228
|
||||
|
||||
#define NV50_M2MF_TILING_DEPTH_OUT 0x0000022c
|
||||
|
||||
#define NV50_M2MF_TILING_POSITION_OUT_Z 0x00000230
|
||||
|
||||
#define NV50_M2MF_TILING_POSITION_OUT 0x00000234
|
||||
#define NV50_M2MF_TILING_POSITION_OUT_X__MASK 0x0000ffff
|
||||
#define NV50_M2MF_TILING_POSITION_OUT_X__SHIFT 0
|
||||
#define NV50_M2MF_TILING_POSITION_OUT_Y__MASK 0xffff0000
|
||||
#define NV50_M2MF_TILING_POSITION_OUT_Y__SHIFT 16
|
||||
|
||||
#define NV50_M2MF_OFFSET_IN_HIGH 0x00000238
|
||||
|
||||
#define NV50_M2MF_OFFSET_OUT_HIGH 0x0000023c
|
||||
|
||||
#define NV04_M2MF_OFFSET_IN 0x0000030c
|
||||
|
||||
#define NV04_M2MF_OFFSET_OUT 0x00000310
|
||||
|
||||
#define NV04_M2MF_PITCH_IN 0x00000314
|
||||
|
||||
#define NV04_M2MF_PITCH_OUT 0x00000318
|
||||
|
||||
#define NV04_M2MF_LINE_LENGTH_IN 0x0000031c
|
||||
|
||||
#define NV04_M2MF_LINE_COUNT 0x00000320
|
||||
|
||||
#define NV04_M2MF_FORMAT 0x00000324
|
||||
#define NV04_M2MF_FORMAT_INPUT_INC__MASK 0x000000ff
|
||||
#define NV04_M2MF_FORMAT_INPUT_INC__SHIFT 0
|
||||
#define NV04_M2MF_FORMAT_INPUT_INC_1 0x00000001
|
||||
#define NV04_M2MF_FORMAT_INPUT_INC_2 0x00000002
|
||||
#define NV04_M2MF_FORMAT_INPUT_INC_4 0x00000004
|
||||
#define NV50_M2MF_FORMAT_INPUT_INC_8 0x00000008
|
||||
#define NV50_M2MF_FORMAT_INPUT_INC_16 0x00000010
|
||||
#define NV04_M2MF_FORMAT_OUTPUT_INC__MASK 0x0000ff00
|
||||
#define NV04_M2MF_FORMAT_OUTPUT_INC__SHIFT 8
|
||||
#define NV04_M2MF_FORMAT_OUTPUT_INC_1 0x00000100
|
||||
#define NV04_M2MF_FORMAT_OUTPUT_INC_2 0x00000200
|
||||
#define NV04_M2MF_FORMAT_OUTPUT_INC_4 0x00000400
|
||||
#define NV50_M2MF_FORMAT_OUTPUT_INC_8 0x00000800
|
||||
#define NV50_M2MF_FORMAT_OUTPUT_INC_16 0x00001000
|
||||
|
||||
#define NV04_M2MF_BUF_NOTIFY 0x00000328
|
||||
|
||||
|
||||
#endif /* NV_M2MF_XML */
|
File diff suppressed because it is too large
Load Diff
|
@ -33,7 +33,6 @@
|
|||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
#include <nouveau/nouveau_class.h>
|
||||
#include <nouveau/nouveau_device.h>
|
||||
#include <nouveau/nouveau_pushbuf.h>
|
||||
#include <nouveau/nouveau_channel.h>
|
||||
|
@ -42,6 +41,10 @@
|
|||
#include <nouveau/nouveau_grobj.h>
|
||||
#include "nv04_2d.h"
|
||||
|
||||
#include "nouveau/nv_object.xml.h"
|
||||
#include "nouveau/nv_m2mf.xml.h"
|
||||
#include "nv01_2d.xml.h"
|
||||
|
||||
/* avoid depending on Mesa/Gallium */
|
||||
#ifdef __GNUC__
|
||||
#define likely(x) __builtin_expect(!!(x), 1)
|
||||
|
@ -813,8 +816,8 @@ nv04_region_copy_swizzle(struct nv04_2d_context *ctx,
|
|||
|
||||
BEGIN_RING(chan, swzsurf, NV04_SWIZZLED_SURFACE_FORMAT, 1);
|
||||
OUT_RING (chan, cs2d_format |
|
||||
log2i(cw) << NV04_SWIZZLED_SURFACE_FORMAT_BASE_SIZE_U_SHIFT |
|
||||
log2i(ch) << NV04_SWIZZLED_SURFACE_FORMAT_BASE_SIZE_V_SHIFT);
|
||||
log2i(cw) << NV04_SWIZZLED_SURFACE_FORMAT_BASE_SIZE_U__SHIFT |
|
||||
log2i(ch) << NV04_SWIZZLED_SURFACE_FORMAT_BASE_SIZE_V__SHIFT);
|
||||
|
||||
BEGIN_RING(chan, sifm, NV03_SCALED_IMAGE_FROM_MEMORY_DMA_IMAGE, 1);
|
||||
OUT_RELOCo(chan, src->bo,
|
||||
|
@ -841,19 +844,19 @@ nv04_region_copy_swizzle(struct nv04_2d_context *ctx,
|
|||
OUT_RELOCl(chan, dst->bo, dst_offset,
|
||||
NOUVEAU_BO_VRAM | NOUVEAU_BO_WR);
|
||||
|
||||
BEGIN_RING(chan, sifm, NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION, 9);
|
||||
OUT_RING (chan, NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_TRUNCATE);
|
||||
BEGIN_RING(chan, sifm, NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION, 9);
|
||||
OUT_RING (chan, NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_TRUNCATE);
|
||||
OUT_RING (chan, sifm_format);
|
||||
OUT_RING (chan, NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_SRCCOPY);
|
||||
OUT_RING (chan, rx | (ry << NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_Y_SHIFT));
|
||||
OUT_RING (chan, rh << NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_H_SHIFT | rw);
|
||||
OUT_RING (chan, rx | (ry << NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_Y_SHIFT));
|
||||
OUT_RING (chan, rh << NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_H_SHIFT | rw);
|
||||
OUT_RING (chan, rx | (ry << NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_Y__SHIFT));
|
||||
OUT_RING (chan, rh << NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_H__SHIFT | rw);
|
||||
OUT_RING (chan, rx | (ry << NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_Y__SHIFT));
|
||||
OUT_RING (chan, rh << NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_H__SHIFT | rw);
|
||||
OUT_RING (chan, 1 << 20);
|
||||
OUT_RING (chan, 1 << 20);
|
||||
|
||||
BEGIN_RING(chan, sifm, NV03_SCALED_IMAGE_FROM_MEMORY_SIZE, 4);
|
||||
OUT_RING (chan, rh << NV03_SCALED_IMAGE_FROM_MEMORY_SIZE_H_SHIFT | align(rw, 8));
|
||||
OUT_RING (chan, rh << NV03_SCALED_IMAGE_FROM_MEMORY_SIZE_H__SHIFT | align(rw, 8));
|
||||
OUT_RING (chan, src->pitch |
|
||||
NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_CENTER |
|
||||
NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_POINT_SAMPLE);
|
||||
|
@ -873,7 +876,7 @@ nv04_copy_m2mf_begin(struct nv04_2d_context *ctx, struct nouveau_bo* dstbo, stru
|
|||
struct nouveau_channel *chan = ctx->m2mf->channel;
|
||||
struct nouveau_grobj *m2mf = ctx->m2mf;
|
||||
MARK_RING (chan, 3 + commands * 9, 2 + commands * 2);
|
||||
BEGIN_RING(chan, m2mf, NV04_MEMORY_TO_MEMORY_FORMAT_DMA_BUFFER_IN, 2);
|
||||
BEGIN_RING(chan, m2mf, NV04_M2MF_DMA_BUFFER_IN, 2);
|
||||
OUT_RELOCo(chan, srcbo,
|
||||
NOUVEAU_BO_GART | NOUVEAU_BO_VRAM | NOUVEAU_BO_RD);
|
||||
OUT_RELOCo(chan, dstbo,
|
||||
|
@ -890,7 +893,7 @@ nv04_copy_m2mf_body(struct nv04_2d_context *ctx, struct nouveau_bo* dstbo, int*
|
|||
fprintf(stderr, "\t\t\tCOPY_M2MF_BODY [%i, %i] <%i[%u]> lin %u <- <%i[%u]> lin %u\n", size, lines, dstbo->handle, *pdstoff, dstpitch, srcbo->handle, *psrcoff, srcpitch);
|
||||
#endif
|
||||
|
||||
BEGIN_RING(chan, m2mf, NV04_MEMORY_TO_MEMORY_FORMAT_OFFSET_IN, 8);
|
||||
BEGIN_RING(chan, m2mf, NV04_M2MF_OFFSET_IN, 8);
|
||||
OUT_RELOCl(chan, srcbo, *psrcoff,
|
||||
NOUVEAU_BO_VRAM | NOUVEAU_BO_GART | NOUVEAU_BO_RD);
|
||||
OUT_RELOCl(chan, dstbo, *pdstoff,
|
||||
|
@ -1123,7 +1126,7 @@ nv04_region_copy_2d(struct nv04_2d_context *ctx, struct nv04_region* dst, struct
|
|||
else
|
||||
{
|
||||
/* NV_CONTEXT_SURFACES_2D has buffer alignment restrictions, fallback
|
||||
* to NV_MEMORY_TO_MEMORY_FORMAT in this case.
|
||||
* to NV_M2MF in this case.
|
||||
* TODO: is this also true for the source? possibly not
|
||||
* TODO: should we just always use m2mf?
|
||||
* TODO: if not, add support for multiple operations to copy_blit
|
||||
|
@ -1274,7 +1277,7 @@ nv04_2d_context_init(struct nouveau_channel* chan)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
BEGIN_RING(chan, ctx->m2mf, NV04_MEMORY_TO_MEMORY_FORMAT_DMA_NOTIFY, 1);
|
||||
BEGIN_RING(chan, ctx->m2mf, NV04_M2MF_DMA_NOTIFY, 1);
|
||||
OUT_RING (chan, ctx->ntfy->handle);
|
||||
|
||||
if (chan->device->chipset < 0x10)
|
||||
|
@ -1296,7 +1299,7 @@ nv04_2d_context_init(struct nouveau_channel* chan)
|
|||
if (chan->device->chipset < 0x10)
|
||||
class = NV04_IMAGE_BLIT;
|
||||
else
|
||||
class = NV12_IMAGE_BLIT;
|
||||
class = NV11_IMAGE_BLIT;
|
||||
|
||||
ret = nouveau_grobj_alloc(chan, handle++, class, &ctx->blit);
|
||||
if (ret) {
|
||||
|
@ -1306,7 +1309,7 @@ nv04_2d_context_init(struct nouveau_channel* chan)
|
|||
|
||||
BEGIN_RING(chan, ctx->blit, NV01_IMAGE_BLIT_DMA_NOTIFY, 1);
|
||||
OUT_RING (chan, ctx->ntfy->handle);
|
||||
BEGIN_RING(chan, ctx->blit, NV04_IMAGE_BLIT_SURFACE, 1);
|
||||
BEGIN_RING(chan, ctx->blit, NV04_IMAGE_BLIT_SURFACES, 1);
|
||||
OUT_RING (chan, ctx->surf2d->handle);
|
||||
BEGIN_RING(chan, ctx->blit, NV01_IMAGE_BLIT_OPERATION, 1);
|
||||
OUT_RING (chan, NV01_IMAGE_BLIT_OPERATION_SRCCOPY);
|
||||
|
@ -1334,7 +1337,7 @@ nv04_2d_context_init(struct nouveau_channel* chan)
|
|||
class = NV04_SWIZZLED_SURFACE;
|
||||
break;
|
||||
case 0x20:
|
||||
class = NV20_SWIZZLED_SURFACE;
|
||||
class = NV11_SWIZZLED_SURFACE;
|
||||
break;
|
||||
case 0x30:
|
||||
class = NV30_SWIZZLED_SURFACE;
|
||||
|
|
Loading…
Reference in New Issue