projects
/
mesa.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
c11ad48
)
r300-gallium, radeon-winsys: Hide radeon_cs from r300 pipe.
author
Corbin Simpson
<MostAwesomeDude@gmail.com>
Fri, 1 May 2009 13:01:52 +0000
(06:01 -0700)
committer
Corbin Simpson
<MostAwesomeDude@gmail.com>
Fri, 1 May 2009 13:01:52 +0000
(06:01 -0700)
src/gallium/drivers/r300/r300_winsys.h
patch
|
blob
|
history
src/gallium/winsys/drm/radeon/core/radeon_buffer.c
patch
|
blob
|
history
src/gallium/winsys/drm/radeon/core/radeon_buffer.h
patch
|
blob
|
history
src/gallium/winsys/drm/radeon/core/radeon_r300.c
patch
|
blob
|
history
diff --git
a/src/gallium/drivers/r300/r300_winsys.h
b/src/gallium/drivers/r300/r300_winsys.h
index 761aedebfcfb1871dea0a5ecd21ba301c2d71392..a833bb0399af7021c01753ce73e8c63bf794de9f 100644
(file)
--- a/
src/gallium/drivers/r300/r300_winsys.h
+++ b/
src/gallium/drivers/r300/r300_winsys.h
@@
-42,11
+42,6
@@
struct r300_winsys {
/* Opaque Radeon-specific winsys object. */
void* radeon_winsys;
/* Opaque Radeon-specific winsys object. */
void* radeon_winsys;
- /* CS object. This is very much like Intel's batchbuffer.
- * Fill it full of dwords and relocs and then submit.
- * Repeat as needed. */
- struct radeon_cs* cs;
-
/* PCI ID */
uint32_t pci_id;
/* PCI ID */
uint32_t pci_id;
diff --git
a/src/gallium/winsys/drm/radeon/core/radeon_buffer.c
b/src/gallium/winsys/drm/radeon/core/radeon_buffer.c
index 6313eb219eca7a0a4381b430e36ed678b38261b7..a15487352b22dbce33c8125bb3c6430b4ac664fb 100644
(file)
--- a/
src/gallium/winsys/drm/radeon/core/radeon_buffer.c
+++ b/
src/gallium/winsys/drm/radeon/core/radeon_buffer.c
@@
-175,8
+175,7
@@
struct radeon_winsys* radeon_pipe_winsys(int fd)
return NULL;
}
return NULL;
}
- bom = radeon_bo_manager_gem_ctor(fd);
- radeon_ws->priv->bom = bom;
+ radeon_ws->priv->bom = radeon_bo_manager_gem_ctor(fd);
radeon_ws->base.flush_frontbuffer = radeon_flush_frontbuffer;
radeon_ws->base.flush_frontbuffer = radeon_flush_frontbuffer;
diff --git
a/src/gallium/winsys/drm/radeon/core/radeon_buffer.h
b/src/gallium/winsys/drm/radeon/core/radeon_buffer.h
index 73fa362acab3aacb834d02cec40fc9ca34c7b42d..ca8bbb3c117366e3894c9419e173fe4b59be635f 100644
(file)
--- a/
src/gallium/winsys/drm/radeon/core/radeon_buffer.h
+++ b/
src/gallium/winsys/drm/radeon/core/radeon_buffer.h
@@
-60,6
+60,12
@@
struct radeon_winsys_priv {
struct radeon_cs_space_check sc[RADEON_MAX_BOS];
/* Current BO count. */
unsigned bo_count;
struct radeon_cs_space_check sc[RADEON_MAX_BOS];
/* Current BO count. */
unsigned bo_count;
+
+ /* Radeon CS manager. */
+ struct radeon_cs_manager* csm;
+
+ /* Current CS. */
+ struct radeon_cs* cs;
};
struct radeon_winsys {
};
struct radeon_winsys {
diff --git
a/src/gallium/winsys/drm/radeon/core/radeon_r300.c
b/src/gallium/winsys/drm/radeon/core/radeon_r300.c
index b17210743220f0d1ebfcc06b335f94187ff357ed..ac6cca36bfe79c2639db322a41ad160a764b9b66 100644
(file)
--- a/
src/gallium/winsys/drm/radeon/core/radeon_r300.c
+++ b/
src/gallium/winsys/drm/radeon/core/radeon_r300.c
@@
-57,7
+57,7
@@
static boolean radeon_r300_validate(struct r300_winsys* winsys)
(struct radeon_winsys_priv*)winsys->radeon_winsys;
struct radeon_cs_space_check* sc = priv->sc;
(struct radeon_winsys_priv*)winsys->radeon_winsys;
struct radeon_cs_space_check* sc = priv->sc;
- retval = radeon_cs_space_check(
winsys
->cs, sc, priv->bo_count);
+ retval = radeon_cs_space_check(
priv
->cs, sc, priv->bo_count);
if (retval == RADEON_CS_SPACE_OP_TO_BIG) {
/* XXX we need to failover here */
if (retval == RADEON_CS_SPACE_OP_TO_BIG) {
/* XXX we need to failover here */
@@
-83,13
+83,19
@@
static void radeon_r300_begin_cs(struct r300_winsys* winsys,
const char* function,
int line)
{
const char* function,
int line)
{
- radeon_cs_begin(winsys->cs, size, file, function, line);
+ struct radeon_winsys_priv* priv =
+ (struct radeon_winsys_priv*)winsys->radeon_winsys;
+
+ radeon_cs_begin(priv->cs, size, file, function, line);
}
static void radeon_r300_write_cs_dword(struct r300_winsys* winsys,
uint32_t dword)
{
}
static void radeon_r300_write_cs_dword(struct r300_winsys* winsys,
uint32_t dword)
{
- radeon_cs_write_dword(winsys->cs, dword);
+ struct radeon_winsys_priv* priv =
+ (struct radeon_winsys_priv*)winsys->radeon_winsys;
+
+ radeon_cs_write_dword(priv->cs, dword);
}
static void radeon_r300_write_cs_reloc(struct r300_winsys* winsys,
}
static void radeon_r300_write_cs_reloc(struct r300_winsys* winsys,
@@
-98,7
+104,10
@@
static void radeon_r300_write_cs_reloc(struct r300_winsys* winsys,
uint32_t wd,
uint32_t flags)
{
uint32_t wd,
uint32_t flags)
{
- radeon_cs_write_reloc(winsys->cs,
+ struct radeon_winsys_priv* priv =
+ (struct radeon_winsys_priv*)winsys->radeon_winsys;
+
+ radeon_cs_write_reloc(priv->cs,
((struct radeon_pipe_buffer*)pbuffer)->bo, rd, wd, flags);
}
((struct radeon_pipe_buffer*)pbuffer)->bo, rd, wd, flags);
}
@@
-107,19
+116,24
@@
static void radeon_r300_end_cs(struct r300_winsys* winsys,
const char* function,
int line)
{
const char* function,
int line)
{
- radeon_cs_end(winsys->cs, file, function, line);
+ struct radeon_winsys_priv* priv =
+ (struct radeon_winsys_priv*)winsys->radeon_winsys;
+
+ radeon_cs_end(priv->cs, file, function, line);
}
static void radeon_r300_flush_cs(struct r300_winsys* winsys)
{
}
static void radeon_r300_flush_cs(struct r300_winsys* winsys)
{
+ struct radeon_winsys_priv* priv =
+ (struct radeon_winsys_priv*)winsys->radeon_winsys;
int retval = 0;
int retval = 0;
- retval = radeon_cs_emit(
winsys
->cs);
+ retval = radeon_cs_emit(
priv
->cs);
if (retval) {
debug_printf("radeon: Bad CS, dumping...\n");
if (retval) {
debug_printf("radeon: Bad CS, dumping...\n");
- radeon_cs_print(
winsys
->cs, stderr);
+ radeon_cs_print(
priv
->cs, stderr);
}
}
- radeon_cs_erase(
winsys
->cs);
+ radeon_cs_erase(
priv
->cs);
}
/* Helper function to do the ioctls needed for setup and init. */
}
/* Helper function to do the ioctls needed for setup and init. */
@@
-169,20
+183,22
@@
struct r300_winsys*
radeon_create_r300_winsys(int fd, struct radeon_winsys* old_winsys)
{
struct r300_winsys* winsys = CALLOC_STRUCT(r300_winsys);
radeon_create_r300_winsys(int fd, struct radeon_winsys* old_winsys)
{
struct r300_winsys* winsys = CALLOC_STRUCT(r300_winsys);
- struct radeon_
cs_manager* csm
;
+ struct radeon_
winsys_priv* priv
;
if (winsys == NULL) {
return NULL;
}
if (winsys == NULL) {
return NULL;
}
+ priv = old_winsys->priv;
+
do_ioctls(winsys, fd);
do_ioctls(winsys, fd);
- csm = radeon_cs_manager_gem_ctor(fd);
+
priv->
csm = radeon_cs_manager_gem_ctor(fd);
-
winsys->cs = radeon_cs_create(
csm, 1024 * 64 / 4);
- radeon_cs_set_limit(
winsys
->cs,
+
priv->cs = radeon_cs_create(priv->
csm, 1024 * 64 / 4);
+ radeon_cs_set_limit(
priv
->cs,
RADEON_GEM_DOMAIN_GTT, winsys->gart_size);
RADEON_GEM_DOMAIN_GTT, winsys->gart_size);
- radeon_cs_set_limit(
winsys
->cs,
+ radeon_cs_set_limit(
priv
->cs,
RADEON_GEM_DOMAIN_VRAM, winsys->vram_size);
winsys->add_buffer = radeon_r300_add_buffer;
RADEON_GEM_DOMAIN_VRAM, winsys->vram_size);
winsys->add_buffer = radeon_r300_add_buffer;