summaryrefslogtreecommitdiff
path: root/test.c
diff options
context:
space:
mode:
authorJerome Glisse <jglisse@redhat.com>2010-02-16 22:08:10 +0100
committerJerome Glisse <jglisse@redhat.com>2010-02-16 22:17:52 +0100
commit8321e1e825bf01d2841fa6da70c894d6d3492505 (patch)
tree011ef3774b267320c85feeb0f975c8fa6e96a750 /test.c
parente2ece825f93ff9ab3e5e896f13b738f01f80b480 (diff)
cleanup
Diffstat (limited to 'test.c')
-rw-r--r--test.c78
1 files changed, 45 insertions, 33 deletions
diff --git a/test.c b/test.c
index 25dad5d..0b5c0a8 100644
--- a/test.c
+++ b/test.c
@@ -93,6 +93,7 @@ static float rvbo1[32] = {
int r600_tri_flat(struct radeon *radeon)
{
struct radeon_device *rdev;
+ struct r600_state_container cont;
struct drm_r600_blend blend;
struct drm_r600_cb cb;
struct drm_r600_cb_cntl cb_cntl;
@@ -126,10 +127,13 @@ int r600_tri_flat(struct radeon *radeon)
cb.color_info = 0x08110068;
cb.placements[0] = RADEON_GEM_DOMAIN_VRAM;
cb.placements[1] = 0;
- cb.bo = radeon->mode.bo;
+ cb.handle = radeon->mode.bo->handle;
atom.type = R600_ATOM_CB;
atom.id = 0;
- atom.data = (uint64_t)(uintptr_t)&cb;
+ cont.bo[0] = radeon->mode.bo;
+ cont.nbo = 1;
+ cont.data = &cb;
+ atom.data = &cont;
r = radeon_atom_create(rdev, &atom, &batch.cb);
if (r)
return r;
@@ -161,7 +165,8 @@ int r600_tri_flat(struct radeon *radeon)
pa.pa_su_poly_offset_back_offset = 0x00000000;
atom.type = R600_ATOM_PA;
atom.id = 0;
- atom.data = (uint64_t)(uintptr_t)&pa;
+ cont.data = &pa;
+ atom.data = &cont;
r = radeon_atom_create(rdev, &atom, &batch.pa);
if (r)
return r;
@@ -186,7 +191,8 @@ int r600_tri_flat(struct radeon *radeon)
cb_cntl.cb_fog_red = 0x00000000;
atom.type = R600_ATOM_CB_CNTL;
atom.id = 0;
- atom.data = (uint64_t)(uintptr_t)&cb_cntl;
+ cont.data = &cb_cntl;
+ atom.data = &cont;
r = radeon_atom_create(rdev, &atom, &batch.cb_cntl);
if (r)
return r;
@@ -217,7 +223,8 @@ int r600_tri_flat(struct radeon *radeon)
vport.pa_sc_generic_scissor_br = 0x00fa00fa;
atom.type = R600_ATOM_VPORT;
atom.id = 0;
- atom.data = (uint64_t)(uintptr_t)&vport;
+ cont.data = &vport;
+ atom.data = &cont;
r = radeon_atom_create(rdev, &atom, &batch.vport);
if (r)
return r;
@@ -233,7 +240,8 @@ int r600_tri_flat(struct radeon *radeon)
blend.cb_blend_control = 0x00010001;
atom.type = R600_ATOM_BLEND;
atom.id = 0;
- atom.data = (uint64_t)(uintptr_t)&blend;
+ cont.data = &blend;
+ atom.data = &cont;
r = radeon_atom_create(rdev, &atom, &batch.blend);
if (r)
return r;
@@ -242,11 +250,12 @@ int r600_tri_flat(struct radeon *radeon)
/* vs constant */
vs_constants.nconstants = 4;
vs_constants.offset = 0x400;
- vs_constants.constants = (uintptr_t)vsconstants;
+ memcpy(vs_constants.constants, vsconstants, vs_constants.nconstants * 4 * 4);
batch.vs_constants = NULL;
atom.type = R600_ATOM_CONSTANTS;
atom.id = 0;
- atom.data = (uint64_t)(uintptr_t)&vs_constants;
+ cont.data = &vs_constants;
+ atom.data = &cont;
r = radeon_atom_create(rdev, &atom, &batch.vs_constants);
if (r)
return r;
@@ -266,7 +275,8 @@ int r600_tri_flat(struct radeon *radeon)
db_cntl.db_preload_control = 0x00000000;
atom.type = R600_ATOM_DB_CNTL;
atom.id = 0;
- atom.data = (uint64_t)(uintptr_t)&db_cntl;
+ cont.data = &db_cntl;
+ atom.data = &cont;
r = radeon_atom_create(rdev, &atom, &batch.db_cntl);
if (r)
return r;
@@ -280,10 +290,11 @@ int r600_tri_flat(struct radeon *radeon)
vs_shader.output_semantic[0] = 4;
vs_shader.sq_pgm_resources_vs = 0x00000106;
vs_shader.ndwords = 64;
- vs_shader.opcodes = vsshaders;
+ memcpy(vs_shader.opcodes, vsshaders, vs_shader.ndwords * 4);
atom.type = R600_ATOM_VS_SHADER;
atom.id = 0;
- atom.data = (uint64_t)(uintptr_t)&vs_shader;
+ cont.data = &vs_shader;
+ atom.data = &cont;
r = radeon_atom_create(rdev, &atom, &batch.vs_shader);
if (r)
return r;
@@ -295,35 +306,36 @@ int r600_tri_flat(struct radeon *radeon)
ps_shader.sq_pgm_resources_ps = 0x00000003;
ps_shader.sq_pgm_exports_ps = 0x00000002;
ps_shader.ndwords = 20;
- ps_shader.opcodes = psshaders;
+ memcpy(ps_shader.opcodes, psshaders, ps_shader.ndwords * 4);
atom.type = R600_ATOM_PS_SHADER;
atom.id = 0;
- atom.data = (uint64_t)(uintptr_t)&ps_shader;
+ cont.data = &ps_shader;
+ atom.data = &cont;
r = radeon_atom_create(rdev, &atom, &batch.ps_shader);
if (r)
return r;
/* inputs */
- batch.inputs.nelements = 2;
- batch.inputs.nbuffers = 2;
- batch.inputs.buffers[0].bo = vbo1;
- batch.inputs.buffers[0].sq_vtx_constant_word0 = 0x00000000;
- batch.inputs.buffers[0].sq_vtx_constant_word2 = 0x03001C00;
- batch.inputs.buffers[0].sq_vtx_constant_word3 = 0x00000001;
- batch.inputs.buffers[1].bo = vbo1;
- batch.inputs.buffers[1].sq_vtx_constant_word0 = 0x0000000C;
- batch.inputs.buffers[1].sq_vtx_constant_word2 = 0x02301C00;
- batch.inputs.buffers[1].sq_vtx_constant_word3 = 0x00000001;
- batch.inputs.elements[0].buffer_id = 0;
- batch.inputs.elements[0].semantic = 1;
- batch.inputs.elements[0].sq_vtx_word0 = 0x7C000000;
- batch.inputs.elements[0].sq_vtx_word1 = 0x1C351000;
- batch.inputs.elements[0].sq_vtx_word2 = 0x00080000;
- batch.inputs.elements[1].buffer_id = 1;
- batch.inputs.elements[1].semantic = 2;
- batch.inputs.elements[1].sq_vtx_word0 = 0x7C000000;
- batch.inputs.elements[1].sq_vtx_word1 = 0x18ED1000;
- batch.inputs.elements[1].sq_vtx_word2 = 0x00080000;
+ batch.inputs.drm.nelements = 2;
+ batch.inputs.drm.nbuffers = 2;
+ batch.inputs.drm.buffers[0].bo = vbo1;
+ batch.inputs.drm.buffers[0].sq_vtx_constant_word0 = 0x00000000;
+ batch.inputs.drm.buffers[0].sq_vtx_constant_word2 = 0x03001C00;
+ batch.inputs.drm.buffers[0].sq_vtx_constant_word3 = 0x00000001;
+ batch.inputs.drm.buffers[1].bo = vbo1;
+ batch.inputs.drm.buffers[1].sq_vtx_constant_word0 = 0x0000000C;
+ batch.inputs.drm.buffers[1].sq_vtx_constant_word2 = 0x02301C00;
+ batch.inputs.drm.buffers[1].sq_vtx_constant_word3 = 0x00000001;
+ batch.inputs.drm.elements[0].buffer_id = 0;
+ batch.inputs.drm.elements[0].semantic = 1;
+ batch.inputs.drm.elements[0].sq_vtx_word0 = 0x7C000000;
+ batch.inputs.drm.elements[0].sq_vtx_word1 = 0x1C351000;
+ batch.inputs.drm.elements[0].sq_vtx_word2 = 0x00080000;
+ batch.inputs.drm.elements[1].buffer_id = 1;
+ batch.inputs.drm.elements[1].semantic = 2;
+ batch.inputs.drm.elements[1].sq_vtx_word0 = 0x7C000000;
+ batch.inputs.drm.elements[1].sq_vtx_word1 = 0x18ED1000;
+ batch.inputs.drm.elements[1].sq_vtx_word2 = 0x00080000;
/* batch */
r = radeon_batches_queue(rdev, &batch);