diff options
author | Jerome Glisse <jglisse@redhat.com> | 2010-02-16 22:08:10 +0100 |
---|---|---|
committer | Jerome Glisse <jglisse@redhat.com> | 2010-02-16 22:17:52 +0100 |
commit | 8321e1e825bf01d2841fa6da70c894d6d3492505 (patch) | |
tree | 011ef3774b267320c85feeb0f975c8fa6e96a750 /test.c | |
parent | e2ece825f93ff9ab3e5e896f13b738f01f80b480 (diff) |
cleanup
Diffstat (limited to 'test.c')
-rw-r--r-- | test.c | 78 |
1 files changed, 45 insertions, 33 deletions
@@ -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); |