mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-06-02 02:38:18 +02:00
radeon/r200/r300: make build with out libdrm_radeon installed for now
This commit is contained in:
parent
8cb16e6daf
commit
dc8a707c67
31 changed files with 442 additions and 94 deletions
|
|
@ -62,9 +62,9 @@ COMMON_SYMLINKS = \
|
|||
radeon_cs_legacy.c \
|
||||
radeon_bo_legacy.h \
|
||||
radeon_cs_legacy.h \
|
||||
radeon_bocs_wrapper.h \
|
||||
radeon_span.h \
|
||||
radeon_span.c \
|
||||
radeon_buffer.h \
|
||||
radeon_lock.c \
|
||||
radeon_lock.h \
|
||||
radeon_common.c \
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
#include "main/simple_list.h"
|
||||
#include "radeon_dri.h"
|
||||
|
||||
#include "radeon_cs_legacy.h"
|
||||
#include "radeon_bocs_wrapper.h"
|
||||
|
||||
#include "xf86drm.h"
|
||||
#include "drm.h"
|
||||
|
|
|
|||
|
|
@ -47,8 +47,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
#include "tnl/t_pipeline.h"
|
||||
#include "swrast_setup/swrast_setup.h"
|
||||
|
||||
#include "radeon_buffer.h"
|
||||
#include "radeon_cs.h"
|
||||
#include "radeon_common.h"
|
||||
#include "radeon_mipmap_tree.h"
|
||||
#include "r200_context.h"
|
||||
#include "r200_ioctl.h"
|
||||
|
|
|
|||
|
|
@ -48,7 +48,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
#include "tnl/t_context.h"
|
||||
#include "tnl/t_pipeline.h"
|
||||
|
||||
#include "radeon_bo.h"
|
||||
#include "r200_context.h"
|
||||
#include "r200_ioctl.h"
|
||||
#include "r200_state.h"
|
||||
|
|
|
|||
|
|
@ -75,11 +75,11 @@ COMMON_SYMLINKS = \
|
|||
radeon_screen.h \
|
||||
radeon_span.h \
|
||||
radeon_span.c \
|
||||
radeon_buffer.h \
|
||||
radeon_bo_legacy.c \
|
||||
radeon_cs_legacy.c \
|
||||
radeon_bo_legacy.h \
|
||||
radeon_cs_legacy.h \
|
||||
radeon_bocs_wrapper.h \
|
||||
radeon_lock.c \
|
||||
radeon_lock.h \
|
||||
radeon_common.c \
|
||||
|
|
|
|||
|
|
@ -44,17 +44,15 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
#include "drm.h"
|
||||
#include "radeon_drm.h"
|
||||
|
||||
#include "radeon_buffer.h"
|
||||
#include "r300_context.h"
|
||||
#include "r300_ioctl.h"
|
||||
#include "radeon_reg.h"
|
||||
#include "r300_reg.h"
|
||||
#include "r300_cmdbuf.h"
|
||||
#include "r300_emit.h"
|
||||
#include "radeon_bocs_wrapper.h"
|
||||
#include "radeon_mipmap_tree.h"
|
||||
#include "r300_state.h"
|
||||
#include "radeon_cs_legacy.h"
|
||||
#include "radeon_cs_gem.h"
|
||||
#include "radeon_reg.h"
|
||||
|
||||
#define R300_VAP_PVS_UPLOAD_ADDRESS 0x2200
|
||||
|
|
|
|||
|
|
@ -37,7 +37,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
#define __R300_CMDBUF_H__
|
||||
|
||||
#include "r300_context.h"
|
||||
#include "radeon_cs.h"
|
||||
|
||||
extern void r300InitCmdBuf(r300ContextPtr r300);
|
||||
extern void r300DestroyCmdBuf(r300ContextPtr r300);
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
#include "r300_tex.h"
|
||||
#include "r300_emit.h"
|
||||
#include "r300_swtcl.h"
|
||||
#include "radeon_bo_legacy.h"
|
||||
#include "radeon_bocs_wrapper.h"
|
||||
|
||||
|
||||
#include "vblank.h"
|
||||
|
|
|
|||
|
|
@ -43,7 +43,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
#include "dri_util.h"
|
||||
#include "texmem.h"
|
||||
#include "radeon_common.h"
|
||||
#include "radeon_bo.h"
|
||||
|
||||
#include "main/macros.h"
|
||||
#include "main/mtypes.h"
|
||||
|
|
|
|||
|
|
@ -53,7 +53,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
#include "vbo/vbo.h"
|
||||
#include "tnl/tnl.h"
|
||||
|
||||
#include "radeon_buffer.h"
|
||||
#include "r300_context.h"
|
||||
#include "r300_ioctl.h"
|
||||
#include "r300_state.h"
|
||||
|
|
|
|||
|
|
@ -48,10 +48,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
#include "r300_state.h"
|
||||
#include "r300_ioctl.h"
|
||||
#include "radeon_mipmap_tree.h"
|
||||
#include "radeon_cs.h"
|
||||
#include "r300_tex.h"
|
||||
#include "r300_reg.h"
|
||||
#include "radeon_buffer.h"
|
||||
|
||||
#define VALID_FORMAT(f) ( ((f) <= MESA_FORMAT_RGBA_DXT5 \
|
||||
|| ((f) >= MESA_FORMAT_RGBA_FLOAT32 && \
|
||||
|
|
|
|||
179
src/mesa/drivers/dri/radeon/radeon_bo_drm.h
Normal file
179
src/mesa/drivers/dri/radeon/radeon_bo_drm.h
Normal file
|
|
@ -0,0 +1,179 @@
|
|||
/*
|
||||
* Copyright © 2008 Jérôme Glisse
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* 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, sub license, 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 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
|
||||
* NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS, AUTHORS
|
||||
* 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.
|
||||
*
|
||||
* The above copyright notice and this permission notice (including the
|
||||
* next paragraph) shall be included in all copies or substantial portions
|
||||
* of the Software.
|
||||
*/
|
||||
/*
|
||||
* Authors:
|
||||
* Jérôme Glisse <glisse@freedesktop.org>
|
||||
*/
|
||||
#ifndef RADEON_BO_H
|
||||
#define RADEON_BO_H
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
#include "radeon_track.h"
|
||||
|
||||
/* bo object */
|
||||
#define RADEON_BO_FLAGS_MACRO_TILE 1
|
||||
#define RADEON_BO_FLAGS_MICRO_TILE 2
|
||||
|
||||
struct radeon_bo_manager;
|
||||
|
||||
struct radeon_bo {
|
||||
uint32_t alignment;
|
||||
uint32_t handle;
|
||||
uint32_t size;
|
||||
uint32_t domains;
|
||||
uint32_t flags;
|
||||
unsigned cref;
|
||||
#ifdef RADEON_BO_TRACK
|
||||
struct radeon_track *track;
|
||||
#endif
|
||||
void *ptr;
|
||||
struct radeon_bo_manager *bom;
|
||||
uint32_t space_accounted;
|
||||
};
|
||||
|
||||
/* bo functions */
|
||||
struct radeon_bo_funcs {
|
||||
struct radeon_bo *(*bo_open)(struct radeon_bo_manager *bom,
|
||||
uint32_t handle,
|
||||
uint32_t size,
|
||||
uint32_t alignment,
|
||||
uint32_t domains,
|
||||
uint32_t flags);
|
||||
void (*bo_ref)(struct radeon_bo *bo);
|
||||
struct radeon_bo *(*bo_unref)(struct radeon_bo *bo);
|
||||
int (*bo_map)(struct radeon_bo *bo, int write);
|
||||
int (*bo_unmap)(struct radeon_bo *bo);
|
||||
int (*bo_wait)(struct radeon_bo *bo);
|
||||
};
|
||||
|
||||
struct radeon_bo_manager {
|
||||
struct radeon_bo_funcs *funcs;
|
||||
int fd;
|
||||
struct radeon_tracker tracker;
|
||||
};
|
||||
|
||||
static inline void _radeon_bo_debug(struct radeon_bo *bo,
|
||||
const char *op,
|
||||
const char *file,
|
||||
const char *func,
|
||||
int line)
|
||||
{
|
||||
fprintf(stderr, "%s %p 0x%08X 0x%08X 0x%08X [%s %s %d]\n",
|
||||
op, bo, bo->handle, bo->size, bo->cref, file, func, line);
|
||||
}
|
||||
|
||||
static inline struct radeon_bo *_radeon_bo_open(struct radeon_bo_manager *bom,
|
||||
uint32_t handle,
|
||||
uint32_t size,
|
||||
uint32_t alignment,
|
||||
uint32_t domains,
|
||||
uint32_t flags,
|
||||
const char *file,
|
||||
const char *func,
|
||||
int line)
|
||||
{
|
||||
struct radeon_bo *bo;
|
||||
|
||||
bo = bom->funcs->bo_open(bom, handle, size, alignment, domains, flags);
|
||||
#ifdef RADEON_BO_TRACK
|
||||
if (bo) {
|
||||
bo->track = radeon_tracker_add_track(&bom->tracker, bo->handle);
|
||||
radeon_track_add_event(bo->track, file, func, "open", line);
|
||||
}
|
||||
#endif
|
||||
return bo;
|
||||
}
|
||||
|
||||
static inline void _radeon_bo_ref(struct radeon_bo *bo,
|
||||
const char *file,
|
||||
const char *func,
|
||||
int line)
|
||||
{
|
||||
bo->cref++;
|
||||
#ifdef RADEON_BO_TRACK
|
||||
radeon_track_add_event(bo->track, file, func, "ref", line);
|
||||
#endif
|
||||
bo->bom->funcs->bo_ref(bo);
|
||||
}
|
||||
|
||||
static inline struct radeon_bo *_radeon_bo_unref(struct radeon_bo *bo,
|
||||
const char *file,
|
||||
const char *func,
|
||||
int line)
|
||||
{
|
||||
bo->cref--;
|
||||
#ifdef RADEON_BO_TRACK
|
||||
radeon_track_add_event(bo->track, file, func, "unref", line);
|
||||
if (bo->cref <= 0) {
|
||||
radeon_tracker_remove_track(&bo->bom->tracker, bo->track);
|
||||
bo->track = NULL;
|
||||
}
|
||||
#endif
|
||||
return bo->bom->funcs->bo_unref(bo);
|
||||
}
|
||||
|
||||
static inline int _radeon_bo_map(struct radeon_bo *bo,
|
||||
int write,
|
||||
const char *file,
|
||||
const char *func,
|
||||
int line)
|
||||
{
|
||||
return bo->bom->funcs->bo_map(bo, write);
|
||||
}
|
||||
|
||||
static inline int _radeon_bo_unmap(struct radeon_bo *bo,
|
||||
const char *file,
|
||||
const char *func,
|
||||
int line)
|
||||
{
|
||||
return bo->bom->funcs->bo_unmap(bo);
|
||||
}
|
||||
|
||||
static inline int _radeon_bo_wait(struct radeon_bo *bo,
|
||||
const char *file,
|
||||
const char *func,
|
||||
int line)
|
||||
{
|
||||
return bo->bom->funcs->bo_wait(bo);
|
||||
}
|
||||
|
||||
#define radeon_bo_open(bom, h, s, a, d, f)\
|
||||
_radeon_bo_open(bom, h, s, a, d, f, __FILE__, __FUNCTION__, __LINE__)
|
||||
#define radeon_bo_ref(bo)\
|
||||
_radeon_bo_ref(bo, __FILE__, __FUNCTION__, __LINE__)
|
||||
#define radeon_bo_unref(bo)\
|
||||
_radeon_bo_unref(bo, __FILE__, __FUNCTION__, __LINE__)
|
||||
#define radeon_bo_map(bo, w)\
|
||||
_radeon_bo_map(bo, w, __FILE__, __FUNCTION__, __LINE__)
|
||||
#define radeon_bo_unmap(bo)\
|
||||
_radeon_bo_unmap(bo, __FILE__, __FUNCTION__, __LINE__)
|
||||
#define radeon_bo_debug(bo, opcode)\
|
||||
_radeon_bo_debug(bo, opcode, __FILE__, __FUNCTION__, __LINE__)
|
||||
#define radeon_bo_wait(bo) \
|
||||
_radeon_bo_wait(bo, __FILE__, __func__, __LINE__)
|
||||
|
||||
#endif
|
||||
|
|
@ -45,9 +45,9 @@
|
|||
|
||||
#include "drm.h"
|
||||
#include "radeon_drm.h"
|
||||
#include "radeon_bo.h"
|
||||
#include "radeon_bo_legacy.h"
|
||||
#include "radeon_common.h"
|
||||
#include "radeon_bocs_wrapper.h"
|
||||
|
||||
|
||||
struct bo_legacy {
|
||||
struct radeon_bo base;
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@
|
|||
#ifndef RADEON_BO_LEGACY_H
|
||||
#define RADEON_BO_LEGACY_H
|
||||
|
||||
#include "radeon_bo.h"
|
||||
#include "radeon_screen.h"
|
||||
|
||||
void radeon_bo_legacy_pending(struct radeon_bo *bo, uint32_t pending);
|
||||
|
|
|
|||
35
src/mesa/drivers/dri/radeon/radeon_bocs_wrapper.h
Normal file
35
src/mesa/drivers/dri/radeon/radeon_bocs_wrapper.h
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
#ifndef RADEON_CS_WRAPPER_H
|
||||
#define RADEON_CS_WRAPPER_H
|
||||
|
||||
#ifdef HAVE_LIBDRM_RADEON
|
||||
|
||||
#include "radeon_bo.h"
|
||||
#include "radeon_bo_gem.h"
|
||||
#include "radeon_cs.h"
|
||||
#include "radeon_cs_gem.h"
|
||||
|
||||
#else
|
||||
/* to be used to build locally in mesa with no libdrm bits */
|
||||
#include "../radeon/radeon_bo_drm.h"
|
||||
#include "../radeon/radeon_cs_drm.h"
|
||||
|
||||
#define RADEON_GEM_DOMAIN_CPU 0x1 // Cached CPU domain
|
||||
#define RADEON_GEM_DOMAIN_GTT 0x2 // GTT or cache flushed
|
||||
#define RADEON_GEM_DOMAIN_VRAM 0x4 // VRAM domain
|
||||
|
||||
static inline void *radeon_bo_manager_gem_ctor(int fd)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static inline void radeon_bo_manager_gem_dtor(void *dummy)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
#include "radeon_bo_legacy.h"
|
||||
#include "radeon_cs_legacy.h"
|
||||
|
||||
#endif
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
/*
|
||||
* Copyright 2008 Red Hat, Inc.
|
||||
*
|
||||
* 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
|
||||
* on the rights to use, copy, modify, merge, publish, distribute, sub
|
||||
* license, and/or sell copies of the Software, and to permit persons to whom
|
||||
* them 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 MERCHANTIBILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS 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.
|
||||
*
|
||||
* Authors:
|
||||
* Adam Jackson <ajax@redhat.com>
|
||||
*/
|
||||
|
||||
#ifndef RADEON_BUFFER_H
|
||||
#define RADEON_BUFFER_H
|
||||
|
||||
#include "radeon_bo.h"
|
||||
#include "dri_util.h"
|
||||
|
||||
struct radeon_renderbuffer
|
||||
{
|
||||
struct gl_renderbuffer base;
|
||||
struct radeon_bo *bo;
|
||||
unsigned int cpp;
|
||||
/* unsigned int offset; */
|
||||
unsigned int pitch;
|
||||
unsigned int width;
|
||||
unsigned int height;
|
||||
|
||||
/* boo Xorg 6.8.2 compat */
|
||||
int has_surface;
|
||||
|
||||
|
||||
__DRIdrawablePrivate *dPriv;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
#ifndef COMMON_CMDBUF_H
|
||||
#define COMMON_CMDBUF_H
|
||||
|
||||
#include "radeon_cs.h"
|
||||
#include "radeon_bocs_wrapper.h"
|
||||
|
||||
void rcommonEnsureCmdBufSpace(radeonContextPtr rmesa, int dwords, const char *caller);
|
||||
int rcommonFlushCmdBuf(radeonContextPtr rmesa, const char *caller);
|
||||
|
|
|
|||
|
|
@ -63,13 +63,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
#include "vblank.h"
|
||||
|
||||
#include "radeon_common.h"
|
||||
#include "radeon_common.h"
|
||||
#include "radeon_bo.h"
|
||||
#include "radeon_cs.h"
|
||||
#include "radeon_bo_legacy.h"
|
||||
#include "radeon_cs_legacy.h"
|
||||
#include "radeon_bo_gem.h"
|
||||
#include "radeon_cs_gem.h"
|
||||
#include "radeon_bocs_wrapper.h"
|
||||
#include "radeon_drm.h"
|
||||
#include "radeon_mipmap_tree.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
#define COMMON_MISC_H
|
||||
|
||||
#include "radeon_common_context.h"
|
||||
#include "radeon_buffer.h"
|
||||
#include "radeon_dma.h"
|
||||
#include "radeon_texture.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -68,6 +68,22 @@ typedef struct radeon_context *radeonContextPtr;
|
|||
#include "tnl_dd/t_dd_vertex.h"
|
||||
#undef TAG
|
||||
|
||||
struct radeon_renderbuffer
|
||||
{
|
||||
struct gl_renderbuffer base;
|
||||
struct radeon_bo *bo;
|
||||
unsigned int cpp;
|
||||
/* unsigned int offset; */
|
||||
unsigned int pitch;
|
||||
unsigned int width;
|
||||
unsigned int height;
|
||||
|
||||
/* boo Xorg 6.8.2 compat */
|
||||
int has_surface;
|
||||
|
||||
__DRIdrawablePrivate *dPriv;
|
||||
};
|
||||
|
||||
struct radeon_colorbuffer_state {
|
||||
GLuint clear;
|
||||
int roundEnable;
|
||||
|
|
|
|||
198
src/mesa/drivers/dri/radeon/radeon_cs_drm.h
Normal file
198
src/mesa/drivers/dri/radeon/radeon_cs_drm.h
Normal file
|
|
@ -0,0 +1,198 @@
|
|||
/*
|
||||
* Copyright © 2008 Nicolai Haehnle
|
||||
* Copyright © 2008 Jérôme Glisse
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* 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, sub license, 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 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 NON-INFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDERS, AUTHORS 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.
|
||||
*
|
||||
* The above copyright notice and this permission notice (including the
|
||||
* next paragraph) shall be included in all copies or substantial portions
|
||||
* of the Software.
|
||||
*/
|
||||
/*
|
||||
* Authors:
|
||||
* Aapo Tahkola <aet@rasterburn.org>
|
||||
* Nicolai Haehnle <prefect_@gmx.net>
|
||||
* Jérôme Glisse <glisse@freedesktop.org>
|
||||
*/
|
||||
#ifndef RADEON_CS_H
|
||||
#define RADEON_CS_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include "drm.h"
|
||||
#include "radeon_drm.h"
|
||||
#include "radeon_bo.h"
|
||||
|
||||
struct radeon_cs_reloc {
|
||||
struct radeon_bo *bo;
|
||||
uint32_t read_domain;
|
||||
uint32_t write_domain;
|
||||
uint32_t flags;
|
||||
};
|
||||
|
||||
|
||||
#define RADEON_CS_SPACE_OK 0
|
||||
#define RADEON_CS_SPACE_OP_TO_BIG 1
|
||||
#define RADEON_CS_SPACE_FLUSH 2
|
||||
|
||||
struct radeon_cs_space_check {
|
||||
struct radeon_bo *bo;
|
||||
uint32_t read_domains;
|
||||
uint32_t write_domain;
|
||||
uint32_t new_accounted;
|
||||
};
|
||||
|
||||
struct radeon_cs_manager;
|
||||
|
||||
struct radeon_cs {
|
||||
struct radeon_cs_manager *csm;
|
||||
void *relocs;
|
||||
uint32_t *packets;
|
||||
unsigned crelocs;
|
||||
unsigned relocs_total_size;
|
||||
unsigned cdw;
|
||||
unsigned ndw;
|
||||
int section;
|
||||
unsigned section_ndw;
|
||||
unsigned section_cdw;
|
||||
const char *section_file;
|
||||
const char *section_func;
|
||||
int section_line;
|
||||
|
||||
};
|
||||
|
||||
/* cs functions */
|
||||
struct radeon_cs_funcs {
|
||||
struct radeon_cs *(*cs_create)(struct radeon_cs_manager *csm,
|
||||
uint32_t ndw);
|
||||
int (*cs_write_reloc)(struct radeon_cs *cs,
|
||||
struct radeon_bo *bo,
|
||||
uint32_t read_domain,
|
||||
uint32_t write_domain,
|
||||
uint32_t flags);
|
||||
int (*cs_begin)(struct radeon_cs *cs,
|
||||
uint32_t ndw,
|
||||
const char *file,
|
||||
const char *func,
|
||||
int line);
|
||||
int (*cs_end)(struct radeon_cs *cs,
|
||||
const char *file,
|
||||
const char *func,
|
||||
int line);
|
||||
int (*cs_emit)(struct radeon_cs *cs);
|
||||
int (*cs_destroy)(struct radeon_cs *cs);
|
||||
int (*cs_erase)(struct radeon_cs *cs);
|
||||
int (*cs_need_flush)(struct radeon_cs *cs);
|
||||
void (*cs_print)(struct radeon_cs *cs, FILE *file);
|
||||
int (*cs_space_check)(struct radeon_cs *cs, struct radeon_cs_space_check *bos,
|
||||
int num_bo);
|
||||
};
|
||||
|
||||
struct radeon_cs_manager {
|
||||
struct radeon_cs_funcs *funcs;
|
||||
int fd;
|
||||
uint32_t vram_limit, gart_limit;
|
||||
uint32_t vram_write_used, gart_write_used;
|
||||
uint32_t read_used;
|
||||
};
|
||||
|
||||
static inline struct radeon_cs *radeon_cs_create(struct radeon_cs_manager *csm,
|
||||
uint32_t ndw)
|
||||
{
|
||||
return csm->funcs->cs_create(csm, ndw);
|
||||
}
|
||||
|
||||
static inline int radeon_cs_write_reloc(struct radeon_cs *cs,
|
||||
struct radeon_bo *bo,
|
||||
uint32_t read_domain,
|
||||
uint32_t write_domain,
|
||||
uint32_t flags)
|
||||
{
|
||||
return cs->csm->funcs->cs_write_reloc(cs,
|
||||
bo,
|
||||
read_domain,
|
||||
write_domain,
|
||||
flags);
|
||||
}
|
||||
|
||||
static inline int radeon_cs_begin(struct radeon_cs *cs,
|
||||
uint32_t ndw,
|
||||
const char *file,
|
||||
const char *func,
|
||||
int line)
|
||||
{
|
||||
return cs->csm->funcs->cs_begin(cs, ndw, file, func, line);
|
||||
}
|
||||
|
||||
static inline int radeon_cs_end(struct radeon_cs *cs,
|
||||
const char *file,
|
||||
const char *func,
|
||||
int line)
|
||||
{
|
||||
return cs->csm->funcs->cs_end(cs, file, func, line);
|
||||
}
|
||||
|
||||
static inline int radeon_cs_emit(struct radeon_cs *cs)
|
||||
{
|
||||
return cs->csm->funcs->cs_emit(cs);
|
||||
}
|
||||
|
||||
static inline int radeon_cs_destroy(struct radeon_cs *cs)
|
||||
{
|
||||
return cs->csm->funcs->cs_destroy(cs);
|
||||
}
|
||||
|
||||
static inline int radeon_cs_erase(struct radeon_cs *cs)
|
||||
{
|
||||
return cs->csm->funcs->cs_erase(cs);
|
||||
}
|
||||
|
||||
static inline int radeon_cs_need_flush(struct radeon_cs *cs)
|
||||
{
|
||||
return cs->csm->funcs->cs_need_flush(cs);
|
||||
}
|
||||
|
||||
static inline void radeon_cs_print(struct radeon_cs *cs, FILE *file)
|
||||
{
|
||||
cs->csm->funcs->cs_print(cs, file);
|
||||
}
|
||||
|
||||
static inline int radeon_cs_space_check(struct radeon_cs *cs,
|
||||
struct radeon_cs_space_check *bos,
|
||||
int num_bo)
|
||||
{
|
||||
return cs->csm->funcs->cs_space_check(cs, bos, num_bo);
|
||||
}
|
||||
|
||||
static inline void radeon_cs_set_limit(struct radeon_cs *cs, uint32_t domain, uint32_t limit)
|
||||
{
|
||||
|
||||
if (domain == RADEON_GEM_DOMAIN_VRAM)
|
||||
cs->csm->vram_limit = limit;
|
||||
else
|
||||
cs->csm->gart_limit = limit;
|
||||
}
|
||||
|
||||
static inline void radeon_cs_write_dword(struct radeon_cs *cs, uint32_t dword)
|
||||
{
|
||||
cs->packets[cs->cdw++] = dword;
|
||||
if (cs->section) {
|
||||
cs->section_cdw++;
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
@ -31,10 +31,7 @@
|
|||
*/
|
||||
#include <errno.h>
|
||||
|
||||
#include "radeon_cs.h"
|
||||
#include "radeon_cs_legacy.h"
|
||||
#include "radeon_bo_legacy.h"
|
||||
|
||||
#include "radeon_bocs_wrapper.h"
|
||||
|
||||
struct cs_manager_legacy {
|
||||
struct radeon_cs_manager base;
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@
|
|||
#ifndef RADEON_CS_LEGACY_H
|
||||
#define RADEON_CS_LEGACY_H
|
||||
|
||||
#include "radeon_cs.h"
|
||||
#include "radeon_common.h"
|
||||
|
||||
struct radeon_cs_manager *radeon_cs_manager_legacy_ctor(struct radeon_context *ctx);
|
||||
|
|
|
|||
|
|
@ -44,7 +44,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
|
||||
#include "radeon_context.h"
|
||||
#include "radeon_common.h"
|
||||
#include "radeon_cs.h"
|
||||
#include "radeon_state.h"
|
||||
#include "radeon_ioctl.h"
|
||||
#include "radeon_tcl.h"
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
|
||||
#include "main/simple_list.h"
|
||||
#include "radeon_lock.h"
|
||||
#include "radeon_cs_legacy.h"
|
||||
#include "radeon_bocs_wrapper.h"
|
||||
|
||||
extern void radeonEmitVertexAOS( r100ContextPtr rmesa,
|
||||
GLuint vertex_size,
|
||||
|
|
|
|||
|
|
@ -34,8 +34,6 @@
|
|||
#include "main/texcompress.h"
|
||||
#include "main/texformat.h"
|
||||
|
||||
#include "radeon_buffer.h"
|
||||
|
||||
static GLuint radeon_compressed_texture_size(GLcontext *ctx,
|
||||
GLsizei width, GLsizei height, GLsizei depth,
|
||||
GLuint mesaFormat)
|
||||
|
|
|
|||
|
|
@ -46,7 +46,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
#include "radeon_chipset.h"
|
||||
#include "radeon_macros.h"
|
||||
#include "radeon_screen.h"
|
||||
#include "radeon_buffer.h"
|
||||
#include "radeon_common.h"
|
||||
#include "radeon_span.h"
|
||||
#if !RADEON_COMMON
|
||||
|
|
@ -66,13 +65,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
#include "vblank.h"
|
||||
#include "drirenderbuffer.h"
|
||||
|
||||
#include "radeon_bocs_wrapper.h"
|
||||
|
||||
#include "GL/internal/dri_interface.h"
|
||||
|
||||
/* Radeon configuration
|
||||
*/
|
||||
#include "xmlpool.h"
|
||||
#include "radeon_bo_legacy.h"
|
||||
#include "radeon_bo_gem.h"
|
||||
|
||||
#define DRI_CONF_COMMAND_BUFFER_SIZE(def,min,max) \
|
||||
DRI_CONF_OPT_BEGIN_V(command_buffer_size,int,def, # min ":" # max ) \
|
||||
|
|
|
|||
|
|
@ -46,7 +46,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
#include "radeon_reg.h"
|
||||
#include "drm_sarea.h"
|
||||
#include "xmlconfig.h"
|
||||
#include "radeon_bo.h"
|
||||
|
||||
|
||||
typedef struct {
|
||||
|
|
|
|||
|
|
@ -47,8 +47,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
#include "radeon_lock.h"
|
||||
#include "radeon_span.h"
|
||||
|
||||
#include "radeon_buffer.h"
|
||||
|
||||
#define DBG 0
|
||||
|
||||
static GLubyte *radeon_ptr32(const struct radeon_renderbuffer * rrb,
|
||||
|
|
|
|||
|
|
@ -42,8 +42,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
#ifndef __RADEON_SPAN_H__
|
||||
#define __RADEON_SPAN_H__
|
||||
|
||||
#include "radeon_buffer.h"
|
||||
|
||||
extern void radeonInitSpanFuncs(GLcontext * ctx);
|
||||
|
||||
extern void radeonSetSpanFunctions(struct radeon_renderbuffer *rrb);
|
||||
|
|
|
|||
|
|
@ -38,7 +38,6 @@
|
|||
#include "swrast_setup/swrast_setup.h"
|
||||
|
||||
#include "radeon_context.h"
|
||||
#include "radeon_cs.h"
|
||||
#include "radeon_mipmap_tree.h"
|
||||
#include "radeon_ioctl.h"
|
||||
#include "radeon_state.h"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue