Ich habe bei FreeBSD versucht "Devil" zu installieren mit:
PHP Code:
cd /usr/ports/graphics/devil && make install clean
(ganze Konsolenmeldungen)
PHP Code:
===> devil-1.7.8_10,1 depends on file: /usr/local/bin/automake-1.12 - found
===> devil-1.7.8_10,1 depends on file: /usr/local/bin/autoconf-2.69 - found
===> devil-1.7.8_10,1 depends on package: libtool>=2.4 - found
===> devil-1.7.8_10,1 depends on executable: pkgconf - found
===> devil-1.7.8_10,1 depends on shared library: jpeg.11 - found
===> devil-1.7.8_10,1 depends on shared library: jasper.4 - found
===> devil-1.7.8_10,1 depends on shared library: lcms.1 - found
===> devil-1.7.8_10,1 depends on shared library: mng.1 - found
===> devil-1.7.8_10,1 depends on shared library: png15 - found
===> devil-1.7.8_10,1 depends on shared library: tiff.4 - found
===> devil-1.7.8_10,1 depends on shared library: glut.12 - not found
===> Verifying install for glut.12 in /usr/ports/graphics/freeglut
===> freeglut-2.8.0 depends on file: /usr/local/libdata/pkgconfig/ice.pc - found
===> freeglut-2.8.0 depends on file: /usr/local/libdata/pkgconfig/xi.pc - found
===> freeglut-2.8.0 depends on file: /usr/local/libdata/pkgconfig/xxf86vm.pc - found
===> freeglut-2.8.0 depends on file: /usr/local/libdata/pkgconfig/xrandr.pc - found
===> freeglut-2.8.0 depends on package: libtool>=2.4 - found
===> freeglut-2.8.0 depends on shared library: GLU.1 - not found
===> Verifying install for GLU.1 in /usr/ports/graphics/libGLU
===> libGLU-7.6.1_2 depends on executable: makedepend - found
===> libGLU-7.6.1_2 depends on file: /usr/local/lib/python2.7/site-packages/libxml2.py - found
===> libGLU-7.6.1_2 depends on file: /usr/local/bin/python2.7 - found
===> libGLU-7.6.1_2 depends on executable: bison - found
===> libGLU-7.6.1_2 depends on executable: gmake - found
===> libGLU-7.6.1_2 depends on file: /usr/local/libdata/pkgconfig/glproto.pc - found
===> libGLU-7.6.1_2 depends on file: /usr/local/libdata/pkgconfig/dri2proto.pc - found
===> libGLU-7.6.1_2 depends on file: /usr/local/libdata/pkgconfig/x11.pc - found
===> libGLU-7.6.1_2 depends on file: /usr/local/libdata/pkgconfig/xext.pc - found
===> libGLU-7.6.1_2 depends on file: /usr/local/libdata/pkgconfig/xxf86vm.pc - found
===> libGLU-7.6.1_2 depends on file: /usr/local/libdata/pkgconfig/xdamage.pc - found
===> libGLU-7.6.1_2 depends on file: /usr/local/libdata/pkgconfig/xfixes.pc - found
===> libGLU-7.6.1_2 depends on shared library: GL.1 - not found
===> Verifying install for GL.1 in /usr/ports/graphics/libGL
===> Building for libGL-7.6.1_3
gmake[1]: Entering directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src'
Making sources for autoconf
gmake[2]: Entering directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/glx/x11'
gmake[2]: Nothing to be done for `default'.
gmake[2]: Leaving directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/glx/x11'
gmake[2]: Entering directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/mesa'
gmake[3]: Entering directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/mesa/x86'
gmake[3]: Nothing to be done for `default'.
gmake[3]: Leaving directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/mesa/x86'
gmake[3]: Entering directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/mesa/drivers'
gmake[4]: Entering directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/mesa/drivers/dri'
gmake[4]: Leaving directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/mesa/drivers/dri'
gmake[3]: Leaving directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/mesa/drivers'
gmake[2]: Leaving directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/mesa'
gmake[2]: Entering directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium'
gmake[3]: Entering directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/auxiliary'
gmake[4]: Entering directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/auxiliary/rbug'
gmake[4]: Nothing to be done for `default'.
gmake[4]: Leaving directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/auxiliary/rbug'
gmake[4]: Entering directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/auxiliary/draw'
gmake[4]: Nothing to be done for `default'.
gmake[4]: Leaving directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/auxiliary/draw'
gmake[4]: Entering directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/auxiliary/translate'
gmake[4]: Nothing to be done for `default'.
gmake[4]: Leaving directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/auxiliary/translate'
gmake[4]: Entering directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/auxiliary/cso_cache'
gmake[4]: Nothing to be done for `default'.
gmake[4]: Leaving directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/auxiliary/cso_cache'
gmake[4]: Entering directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/auxiliary/pipebuffer'
gmake[4]: Nothing to be done for `default'.
gmake[4]: Leaving directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/auxiliary/pipebuffer'
gmake[4]: Entering directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/auxiliary/tgsi'
gmake[4]: Nothing to be done for `default'.
gmake[4]: Leaving directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/auxiliary/tgsi'
gmake[4]: Entering directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/auxiliary/sct'
gmake[4]: Nothing to be done for `default'.
gmake[4]: Leaving directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/auxiliary/sct'
gmake[4]: Entering directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/auxiliary/rtasm'
gmake[4]: Nothing to be done for `default'.
gmake[4]: Leaving directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/auxiliary/rtasm'
gmake[4]: Entering directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/auxiliary/util'
gmake[4]: Nothing to be done for `default'.
gmake[4]: Leaving directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/auxiliary/util'
gmake[4]: Entering directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/auxiliary/indices'
gmake[4]: Nothing to be done for `default'.
gmake[4]: Leaving directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/auxiliary/indices'
gmake[3]: Leaving directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/auxiliary'
gmake[3]: Entering directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/drivers'
gmake[4]: Entering directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/drivers/softpipe'
gmake[4]: Nothing to be done for `default'.
gmake[4]: Leaving directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/drivers/softpipe'
gmake[4]: Entering directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/drivers/failover'
gmake[4]: Nothing to be done for `default'.
gmake[4]: Leaving directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/drivers/failover'
gmake[4]: Entering directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/drivers/trace'
gmake[4]: Nothing to be done for `default'.
gmake[4]: Leaving directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/drivers/trace'
gmake[4]: Entering directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/drivers/identity'
gmake[4]: Nothing to be done for `default'.
gmake[4]: Leaving directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/drivers/identity'
gmake[4]: Entering directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/drivers/i915simple'
gmake[4]: Nothing to be done for `default'.
gmake[4]: Leaving directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/drivers/i915simple'
gmake[3]: Leaving directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/drivers'
gmake[3]: Entering directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/state_trackers'
gmake[3]: Leaving directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/state_trackers'
gmake[2]: Leaving directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium'
gmake[2]: Entering directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/winsys'
gmake[3]: Entering directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/winsys/drm'
gmake[4]: Entering directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/winsys/drm/intel'
gmake[5]: Entering directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/winsys/drm/intel/gem'
cc -c -I. -I../../../../../../src/gallium/include -I../../../../../../src/gallium/auxiliary -I../../../../../../src/gallium/drivers -I/src/gallium/include -I/src/gallium/auxiliary -I/src/gallium/drivers -I/usr/local/include -I/usr/local/include/drm -I/usr/local/include -O2 -fno-strict-aliasing -pipe -Wall -Wmissing-prototypes -std=c99 -fno-strict-aliasing -fPIC -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DHAVE_POSIX_MEMALIGN -DUSE_XCB -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER -DHAVE_ALIAS -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING intel_drm_batchbuffer.c -o intel_drm_batchbuffer.o
In file included from intel_drm_batchbuffer.c:2:
intel_drm_winsys.h:8:26: error: intel_bufmgr.h: No such file or directory
In file included from intel_drm_batchbuffer.c:2:
intel_drm_winsys.h:30: error: expected specifier-qualifier-list before 'drm_intel_bufmgr'
intel_drm_winsys.h:41: error: expected ')' before '*' token
intel_drm_winsys.h:56: error: expected specifier-qualifier-list before 'drm_intel_bo'
intel_drm_winsys.h:72: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
intel_drm_batchbuffer.c:23: error: expected specifier-qualifier-list before 'drm_intel_bo'
intel_drm_batchbuffer.c: In function 'intel_drm_batchbuffer_reset':
intel_drm_batchbuffer.c:37: error: 'struct intel_drm_batchbuffer' has no member named 'bo'
intel_drm_batchbuffer.c:38: warning: implicit declaration of function 'drm_intel_bo_unreference'
intel_drm_batchbuffer.c:38: error: 'struct intel_drm_batchbuffer' has no member named 'bo'
intel_drm_batchbuffer.c:39: error: 'struct intel_drm_batchbuffer' has no member named 'bo'
intel_drm_batchbuffer.c:39: warning: implicit declaration of function 'drm_intel_bo_alloc'
intel_drm_batchbuffer.c:39: error: 'struct <anonymous>' has no member named 'gem'
intel_drm_batchbuffer.c:43: warning: implicit declaration of function 'drm_intel_bo_map'
intel_drm_batchbuffer.c:43: error: 'struct intel_drm_batchbuffer' has no member named 'bo'
intel_drm_batchbuffer.c:44: error: 'struct intel_drm_batchbuffer' has no member named 'bo'
intel_drm_batchbuffer.c: In function 'intel_drm_batchbuffer_reloc':
intel_drm_batchbuffer.c:115: warning: implicit declaration of function 'drm_intel_bo_emit_reloc'
intel_drm_batchbuffer.c:115: error: 'struct intel_drm_batchbuffer' has no member named 'bo'
intel_drm_batchbuffer.c:116: warning: implicit declaration of function 'intel_bo'
intel_drm_batchbuffer.c:120: error: invalid type argument of '->'
intel_drm_batchbuffer.c: In function 'intel_drm_batchbuffer_flush':
intel_drm_batchbuffer.c:159: warning: implicit declaration of function 'drm_intel_bo_unmap'
intel_drm_batchbuffer.c:159: error: 'struct intel_drm_batchbuffer' has no member named 'bo'
intel_drm_batchbuffer.c:162: warning: implicit declaration of function 'drm_intel_bo_exec'
intel_drm_batchbuffer.c:162: error: 'struct intel_drm_batchbuffer' has no member named 'bo'
intel_drm_batchbuffer.c:167: error: 'struct intel_drm_batchbuffer' has no member named 'bo'
intel_drm_batchbuffer.c:168: error: 'struct intel_drm_batchbuffer' has no member named 'bo'
intel_drm_batchbuffer.c:175: error: 'struct intel_drm_batchbuffer' has no member named 'bo'
intel_drm_batchbuffer.c:190: warning: implicit declaration of function 'intel_drm_fence_create'
intel_drm_batchbuffer.c:190: error: 'struct intel_drm_batchbuffer' has no member named 'bo'
intel_drm_batchbuffer.c:190: warning: assignment makes pointer from integer without a cast
intel_drm_batchbuffer.c: In function 'intel_drm_batchbuffer_destroy':
intel_drm_batchbuffer.c:202: error: 'struct intel_drm_batchbuffer' has no member named 'bo'
intel_drm_batchbuffer.c:203: error: 'struct intel_drm_batchbuffer' has no member named 'bo'
gmake[5]: *** [intel_drm_batchbuffer.o] Error 1
gmake[5]: Leaving directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/winsys/drm/intel/gem'
gmake[4]: *** [default] Error 1
gmake[4]: Leaving directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/winsys/drm/intel'
gmake[3]: *** [default] Error 1
gmake[3]: Leaving directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/winsys/drm'
gmake[2]: *** [default] Error 1
gmake[2]: Leaving directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src/gallium/winsys'
gmake[1]: *** [subdirs] Error 1
gmake[1]: Leaving directory `/usr/ports/graphics/libGL/work/Mesa-7.6.1/src'
gmake: *** [default] Error 1
*** Error code 1
Stop in /usr/ports/graphics/libGL.
*** Error code 1
Stop in /usr/ports/graphics/libGLU.
*** Error code 1
Stop in /usr/ports/graphics/freeglut.
*** Error code 1
Stop in /usr/ports/graphics/devil.
*** Error code 1
Stop in /usr/ports/graphics/devil.
PHP Code:
#include "intel_drm_winsys.h"
#include "util/u_memory.h"
#include "i915_drm.h"
#define BATCH_RESERVED 16
#define INTEL_DEFAULT_RELOCS 100
#define INTEL_MAX_RELOCS 400
#define INTEL_BATCH_NO_CLIPRECTS 0x1
#define INTEL_BATCH_CLIPRECTS 0x2
#undef INTEL_RUN_SYNC
struct intel_drm_batchbuffer
{
struct intel_batchbuffer base;
size_t actual_size;
drm_intel_bo *bo;
};
static INLINE struct intel_drm_batchbuffer *
intel_drm_batchbuffer(struct intel_batchbuffer *batch)
{
return (struct intel_drm_batchbuffer *)batch;
}
static void
intel_drm_batchbuffer_reset(struct intel_drm_batchbuffer *batch)
{
struct intel_drm_winsys *idws = intel_drm_winsys(batch->base.iws);
if (batch->bo)
drm_intel_bo_unreference(batch->bo);
batch->bo = drm_intel_bo_alloc(idws->pools.gem,
"gallium3d_batchbuffer",
batch->actual_size,
4096);
drm_intel_bo_map(batch->bo, TRUE);
batch->base.map = batch->bo->virtual;
memset(batch->base.map, 0, batch->actual_size);
batch->base.ptr = batch->base.map;
batch->base.size = batch->actual_size - BATCH_RESERVED;
batch->base.relocs = 0;
}
static struct intel_batchbuffer *
intel_drm_batchbuffer_create(struct intel_winsys *iws)
{
struct intel_drm_winsys *idws = intel_drm_winsys(iws);
struct intel_drm_batchbuffer *batch = CALLOC_STRUCT(intel_drm_batchbuffer);
batch->base.map = NULL;
batch->base.ptr = NULL;
batch->base.size = 0;
batch->base.relocs = 0;
batch->base.max_relocs = 300;/*INTEL_DEFAULT_RELOCS;*/
batch->base.iws = iws;
batch->actual_size = idws->max_batch_size;
intel_drm_batchbuffer_reset(batch);
return &batch->base;
}
static int
intel_drm_batchbuffer_reloc(struct intel_batchbuffer *ibatch,
struct intel_buffer *buffer,
enum intel_buffer_usage usage,
unsigned pre_add)
{
struct intel_drm_batchbuffer *batch = intel_drm_batchbuffer(ibatch);
unsigned write_domain = 0;
unsigned read_domain = 0;
unsigned offset;
int ret = 0;
assert(batch->base.relocs < batch->base.max_relocs);
if (usage == INTEL_USAGE_SAMPLER) {
write_domain = 0;
read_domain = I915_GEM_DOMAIN_SAMPLER;
} else if (usage == INTEL_USAGE_RENDER) {
write_domain = I915_GEM_DOMAIN_RENDER;
read_domain = I915_GEM_DOMAIN_RENDER;
} else if (usage == INTEL_USAGE_2D_TARGET) {
write_domain = I915_GEM_DOMAIN_RENDER;
read_domain = I915_GEM_DOMAIN_RENDER;
} else if (usage == INTEL_USAGE_2D_SOURCE) {
write_domain = 0;
read_domain = I915_GEM_DOMAIN_RENDER;
} else if (usage == INTEL_USAGE_VERTEX) {
write_domain = 0;
read_domain = I915_GEM_DOMAIN_VERTEX;
} else {
assert(0);
return -1;
}
offset = (unsigned)(batch->base.ptr - batch->base.map);
ret = drm_intel_bo_emit_reloc(batch->bo, offset,
intel_bo(buffer), pre_add,
read_domain,
write_domain);
((uint32_t*)batch->base.ptr)[0] = intel_bo(buffer)->offset + pre_add;
batch->base.ptr += 4;
if (!ret)
batch->base.relocs++;
return ret;
}
static void
intel_drm_batchbuffer_flush(struct intel_batchbuffer *ibatch,
struct pipe_fence_handle **fence)
{
struct intel_drm_batchbuffer *batch = intel_drm_batchbuffer(ibatch);
unsigned used = 0;
int ret = 0;
int i;
assert(intel_batchbuffer_space(ibatch) >= 0);
used = batch->base.ptr - batch->base.map;
assert((used & 3) == 0);
if (used & 4) {
// MI_FLUSH | FLUSH_MAP_CACHE;
intel_batchbuffer_dword(ibatch, (0x0<<29)|(0x4<<23)|(1<<0));
// MI_NOOP
intel_batchbuffer_dword(ibatch, (0x0<<29)|(0x0<<23));
// MI_BATCH_BUFFER_END;
intel_batchbuffer_dword(ibatch, (0x0<<29)|(0xA<<23));
} else {
//MI_FLUSH | FLUSH_MAP_CACHE;
intel_batchbuffer_dword(ibatch, (0x0<<29)|(0x4<<23)|(1<<0));
// MI_BATCH_BUFFER_END;
intel_batchbuffer_dword(ibatch, (0x0<<29)|(0xA<<23));
}
used = batch->base.ptr - batch->base.map;
drm_intel_bo_unmap(batch->bo);
/* Do the sending to HW */
ret = drm_intel_bo_exec(batch->bo, used, NULL, 0, 0);
assert(ret == 0);
if (intel_drm_winsys(ibatch->iws)->dump_cmd) {
unsigned *ptr;
drm_intel_bo_map(batch->bo, FALSE);
ptr = (unsigned*)batch->bo->virtual;
debug_printf("%s:\n", __func__);
for (i = 0; i < used / 4; i++, ptr++) {
debug_printf("\t%08x: %08x\n", i*4, *ptr);
}
drm_intel_bo_unmap(batch->bo);
} else {
#ifdef INTEL_RUN_SYNC
drm_intel_bo_map(batch->bo, FALSE);
drm_intel_bo_unmap(batch->bo);
#endif
}
if (fence) {
ibatch->iws->fence_reference(ibatch->iws, fence, NULL);
#ifdef INTEL_RUN_SYNC
/* we run synced to GPU so just pass null */
(*fence) = intel_drm_fence_create(NULL);
#else
(*fence) = intel_drm_fence_create(batch->bo);
#endif
}
intel_drm_batchbuffer_reset(batch);
}
static void
intel_drm_batchbuffer_destroy(struct intel_batchbuffer *ibatch)
{
struct intel_drm_batchbuffer *batch = intel_drm_batchbuffer(ibatch);
if (batch->bo)
drm_intel_bo_unreference(batch->bo);
free(batch);
}
void intel_drm_winsys_init_batchbuffer_functions(struct intel_drm_winsys *idws)
{
idws->base.batchbuffer_create = intel_drm_batchbuffer_create;
idws->base.batchbuffer_reloc = intel_drm_batchbuffer_reloc;
idws->base.batchbuffer_flush = intel_drm_batchbuffer_flush;
idws->base.batchbuffer_destroy = intel_drm_batchbuffer_destroy;
}
lG Tom Jessel






