aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r300/r300_render.c
Commit message (Collapse)AuthorAgeFilesLines
* r300g: assert-fail when calling resource_resolveMarek Olšák2012-02-121-0/+3
| | | | And reset the dest pointer to NULL after it.
* Squash-merge branch 'gallium-clip-state'Marek Olšák2012-01-101-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gallium/auxiliary/tgsi/tgsi_strings.c src/mesa/state_tracker/st_atom_clip.c commit d919791f2742e913173d6b335128e7d4c63c0840 Author: Christoph Bumiller <[email protected]> Date: Fri Jan 6 17:59:22 2012 +0100 d3d1x: adapt to new clip state commit cfec82bca3fefcdefafca3f4555285ec1d1ae421 Author: Christoph Bumiller <[email protected]> Date: Fri Jan 6 14:16:51 2012 +0100 gallium/docs: update for clip state changes commit c02bfeb81ad9f62041a2285ea6373bbbd602912a Author: Christoph Bumiller <[email protected]> Date: Fri Jan 6 14:21:43 2012 +0100 tgsi: add TGSI_PROPERTY_PROHIBIT_UCPS commit d4e0a785a6a23ad2f6819fd72e236acb9750028d Author: Brian Paul <[email protected]> Date: Thu Jan 5 08:30:00 2012 -0700 tgsi: consolidate TGSI string arrays in new tgsi_strings.h There was some duplication between the tgsi_dump.c and tgsi_text.c files. Also use some static assertions to help catch errors when adding new TGSI values. v2: put strings in tgsi_strings.c file instead of the .h file. Reviewed-by: Dave Airlie <[email protected]> commit c28584ce0d8c62bd92c8f140729d344f88a0b3cd Author: Christoph Bumiller <[email protected]> Date: Fri Jan 6 12:48:09 2012 +0100 gallium: extend user_clip_plane_enable to apply to clip distances commit f1d5016c07f786229ed057effbe55fbfd160b019 Author: Marek Olšák <[email protected]> Date: Fri Jan 6 02:39:09 2012 +0100 nvfx: adapt to new clip state commit 6f6fa1c26bd19f797c1996731708e3569c9bfe24 Author: Marek Olšák <[email protected]> Date: Fri Jan 6 01:41:39 2012 +0100 st/mesa: fix DrawPixels with GL_DEPTH_CLAMP commit c86ad730aa1c017788ae88a55f54071bf222be12 Author: Christoph Bumiller <[email protected]> Date: Tue Jan 3 23:51:30 2012 +0100 nv50: adapt to new clip state commit 3a8ae6ac243bae5970729dc4057fe02d992543dc Author: Christoph Bumiller <[email protected]> Date: Tue Jan 3 23:32:36 2012 +0100 nvc0: adapt to new clip state commit 6243a8246997f8d2fcc69ab741a2c2dea080ff11 Author: Marek Olšák <[email protected]> Date: Thu Dec 29 01:32:51 2011 +0100 draw: initalize pt.user.planes in draw_init This fixes a crash in glean/fpexceptions. commit e3056524b19b56d473f4faff84ffa0eb41497408 Author: Marek Olšák <[email protected]> Date: Mon Dec 26 06:26:55 2011 +0100 svga: adapt to new clip state commit c5bfa8b37d6d489271df457229081d6bbb51b4b7 Author: Marek Olšák <[email protected]> Date: Sun Dec 25 14:11:51 2011 +0100 r600g: adapt to new clip state commit f11890905362f62627c4a28a8255b76eb7de7df2 Author: Marek Olšák <[email protected]> Date: Sun Dec 25 14:10:26 2011 +0100 r300g: adapt to new clip state commit e37465327c79a01112f15f6278d9accc5bf3103f Author: Marek Olšák <[email protected]> Date: Sun Dec 25 12:39:16 2011 +0100 draw: adapt to new clip state This adds a regression in the LLVM clipping path. Can anybody see anything wrong with the code? It works for every other case, just glean/fpexceptions crashes when doing the "Infinite clip plane test". commit b474d2b18c72d965eefae4e427c269cba5ce6ba2 Author: Marek Olšák <[email protected]> Date: Sun Dec 25 13:14:59 2011 +0100 u_blitter: don't save/set/restore clip state commit 9dd240ea91f523a677af45e8d0adb9e661e28602 Author: Marek Olšák <[email protected]> Date: Sun Dec 25 13:11:56 2011 +0100 gallium: don't cso_save/set/restore clip state The enable bits are in the rasterizer state. commit a4f7031179f5f4ad524b34b394214b984ac950f6 Author: Marek Olšák <[email protected]> Date: Sun Dec 25 12:58:55 2011 +0100 gallium: default depth_clip to 1 depth_clip = !depth_clamp commit fe21147a00ab90e549d63fe12ee4625c9c2ffcc3 Author: Marek Olšák <[email protected]> Date: Mon Dec 26 06:14:19 2011 +0100 trace,util: update state logging to new clip state Also dump the other missing flags. commit 2a3b96e84ac872dcc5bc1de049fe76bb58d64b23 Author: Marek Olšák <[email protected]> Date: Sun Dec 25 10:43:43 2011 +0100 st/mesa: adapt to new clip state commit b7b656a42fca19d7c85267f42649a206a85a2c72 Author: Marek Olšák <[email protected]> Date: Sat Dec 17 15:45:19 2011 +0100 gallium: move state enable bits from clip_state to rasterizer_state
* gallium: make vbuf_render::set_primitive() return voidBrian Paul2012-01-071-4/+2
| | | | All the implementations of this function always return TRUE.
* r300g: set max_index to 0xffffff if there are no per-vertex attribsMarek Olšák2011-11-201-2/+11
|
* u_vbuf_mgr: correctly compute max vertex count from hw buffersMarek Olšák2011-11-201-1/+8
| | | | | | | | And update r300g. This is different from util_draw_max_index in how it obtains vertex elements and that it doesn't have to call util_format_description due to additional precomputed data in vertex elements.
* r300g: use u_vbuf_mgr to set/get the index bufferMarek Olšák2011-11-201-11/+11
|
* r300g: always set VF_MIN_VTX_INDX to 0Marek Olšák2011-11-201-11/+10
| | | | It's not really useful to have non-zero there.
* r300g: don't call u_trim_pipe_prim in r300_swtcl_draw_vboMarek Olšák2011-10-231-5/+0
| | | | This was dead code anyway.
* Revert "r300g: fix rendering with a non-zero index bias in ↵Marek Olšák2011-10-161-3/+1
| | | | | | | | draw_elements_immediate" This reverts commit 5506f6ef966b8883e575a3f60ce96ad42ee6ffd2. It breaks more things than it fixes.
* r300g: fix rendering with a non-zero index bias in draw_elements_immediateMarek Olšák2011-10-041-1/+3
| | | | NOTE: This is a candidate for the stable branches.
* r300g: simplify the immd_is_good_idea functionMarek Olšák2011-09-291-26/+2
|
* u_vbuf_mgr: s/u_vbuf_mgr_/u_vbuf_Marek Olšák2011-09-261-2/+2
|
* u_vbuf_mgr: cleanup original vs real vertex buffer arraysMarek Olšák2011-09-261-5/+5
| | | | | | It can now override both buffer offsets and strides in additions to resources. Overriding buffer offsets was kinda hackish and could cause issues with non-native vertex formats.
* gallium: move clear paths from rgba to a pointer to a color union (v2)Dave Airlie2011-09-181-10/+10
| | | | | | | | | | | | | | | This moves the gallium interface for clears from using a pointer to 4 floats to a pointer to a union of float/unsigned/int values. Notes: 1. the value is opaque. 2. only when the value is used should it be interpretered according to the surface format it is going to be used with. 3. float clears on integer buffers and vice-versa are undefined. v2: fixed up vega and graw, dropped hunks that shouldn't have been in patch. Signed-off-by: Dave Airlie <[email protected]>
* r300g: adapt to the resource_resolve interface changeMarek Olšák2011-08-051-21/+22
|
* u_vbuf_mgr: make u_vbuf_mgr_draw_begin return flags in a bitmaskMarek Olšák2011-06-191-4/+1
|
* r300g: rename AOS -> VARRAYSMarek Olšák2011-06-181-17/+17
|
* r300g: fix handling PREP_* optionsMarek Olšák2011-06-181-31/+32
| | | | | | This should fix rendering >65532 vertices using draw_arrays on r300-r400. NOTE: This is a candidate for the 7.10 branch.
* r300g: fix draw_vbo splitting on r3xx-r4xxMarek Olšák2011-06-091-5/+10
| | | | NOTE: This is a candidate for the 7.10 branch.
* r300g: make translate_primitive table-drivenMarek Olšák2011-06-091-24/+20
|
* r300g: clear can be killed by render conditionMarek Olšák2011-05-291-0/+3
| | | | | Fixes piglit: - NV_conditional_render/clear
* r300g/winsys: rename r300->radeon and do a little cleanupMarek Olšák2011-04-181-4/+4
| | | | | Renaming a few files, types, and functions. Also make the winsys independent of r300g.
* r300g: decide whether a flush should be asynchronous when calling itMarek Olšák2011-03-081-1/+1
| | | | Thread offloading is not sometimes desirable, e.g. when mapping a buffer.
* r300g: implement instanced arraysMarek Olšák2011-03-051-23/+50
|
* r300g: cleanup parameters of draw functionsMarek Olšák2011-03-051-98/+108
|
* r300g: require DRM 2.3.0 (kernel 2.6.34)Marek Olšák2011-03-021-10/+8
| | | | Running any older kernel is not recommended anyway.
* r300g: update derived state before uploading vertex buffersMarek Olšák2011-03-011-2/+2
| | | | The function may invoke blitter, which invalidates vertex buffers.
* r300g: remove tracking whether vertex buffers need to be validatedMarek Olšák2011-02-181-59/+26
| | | | | This was getting hard to maintain and didn't really bring any real benefits. Instead, validate buffers when the vertex array state is dirty.
* gallium: add usage parameter to pipe_buffer_createMarek Olšák2011-02-151-0/+1
| | | | | And set a reasonable buffer usage flag everywhere instead of just PIPE_USAGE_DEFAULT.
* r300g: inline some of the pipe_buffer_map/unmap callsMarek Olšák2011-02-151-18/+14
|
* r300g: put indices in CS if there's just a few of them and are in user memoryMarek Olšák2011-02-141-3/+99
|
* r300g: cleanup the draw functionsMarek Olšák2011-02-141-76/+50
|
* r300g: do not create a user buffer struct for misaligned ushort indices fallbackMarek Olšák2011-02-141-9/+6
|
* r300g: fix fallback for misaligned ushort indices with num vertices >= 65535Marek Olšák2011-02-141-1/+5
|
* r300g: consolidate emission of common draw regsMarek Olšák2011-02-141-21/+23
|
* r300g: emit 3D_LOAD_VBPNTR only when necessaryMarek Olšák2011-02-141-1/+9
| | | | | I thought I couldn't skip emitting this packet in some cases. Well it looks like I can.
* r300g: remove the relocation after AARESOLVE_PITCHMarek Olšák2011-02-141-1/+1
|
* r300g: fix warningMarek Olšák2011-02-111-1/+1
|
* r300g: import the last bits of libdrm and cleanup the whole thingMarek Olšák2011-02-111-28/+12
| | | | | | | | | | | | | | Based on Dave's branch. The majority of this commit is a cleanup, mainly renaming things. There wasn't much code to import, just ioctl calls. Also done: - implemented unsynchronized bo_map (important optimization!) - radeon_bo_is_referenced_by_cs is no longer a refcount hack - dropped the libdrm_radeon dependency I'm surprised that this has resulted in less code in the end.
* r300g: consolidate buffers and textures to r300_resourceMarek Olšák2011-02-101-5/+5
| | | | Transfers and create/destroy are still handled separately.
* r300g: simplify WRITE_RELOC API and cleanupMarek Olšák2011-02-101-7/+2
|
* r300g: use the new vertex buffer managerMarek Olšák2011-02-071-72/+58
|
* r300g: rework vertex format fallbackMarek Olšák2011-01-301-4/+4
| | | | | | 1) Only translate the [min_index, max_index] range. 2) Upload translated vertices via the uploader. 3) Rename valid_vertex_buffer[] to real_vertex_buffer[]
* r300g: fix crash when flushing ZMASKMarek Olšák2011-01-091-5/+4
| | | | | | | | | | https://bugs.freedesktop.org/show_bug.cgi?id=32912 The fix is to call update_derived_state before user buffer uploads. I've also moved some code around. Unfortunately, there are still some ZMASK-related bugs which cause misrendering, i.e. flushing doesn't always work and glean/fbo fails.
* r300g: rework command submission and resource space checkingMarek Olšák2011-01-081-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The motivation behind this rework is to get some speed by reducing CPU overhead. The performance increase depends on many factors, but it's measurable (I think it's about 10% increase in Torcs). This commit replaces libdrm's radeon_cs_gem with our own implemention. It's optimized specifically for r300g, but r600g could use it as well. Reloc writes and space checking are faster and simpler than their counterparts in libdrm (the time complexity of all the functions is O(1) in nearly all scenarios, thanks to hashing). (libdrm's radeon_bo_gem is still being used in the driver.) It works like this: cs_add_reloc(cs, buf, read_domain, write_domain) adds a new relocation and also adds the size of 'buf' to the used_gart and used_vram winsys variables based on the domains, which are simply or'd for the accounting purposes. The adding is skipped if the reloc is already present in the list, but it accounts any newly-referenced domains. cs_validate is then called, which just checks: used_vram/gart < vram/gart_size * 0.8 The 0.8 number allows for some memory fragmentation. If the validation fails, the pipe driver flushes CS and tries do the validation again, i.e. it validates only that one operation. If it fails again, it drops the operation on the floor and prints some nasty message to stderr. cs_write_reloc(cs, buf) just writes a reloc that has been added using cs_add_reloc. The read_domain and write_domain parameters have been removed, because we already specify them in cs_add_reloc. The space checking has been tested by putting small values in vram/gart_size variables.
* r300g: derive user buffer sizes at draw timeMarek Olšák2011-01-071-47/+56
| | | | | | | This only uploads the [min_index, max_index] range instead of [0, userbuf size], which greatly speeds up user buffer uploads. This is also a prerequisite for atomizing vertex arrays in st/mesa.
* r300g: skip buffer validation of upload buffers when appropriateMarek Olšák2011-01-061-0/+6
| | | | because the upload buffers are reused for subsequent draw operations.
* r300g: rename aos to vertex arraysMarek Olšák2010-12-281-20/+20
|
* r300g: simplify the code for buffer uploadsMarek Olšák2010-12-251-3/+4
|
* r300g: user index buffers are always alignedMarek Olšák2010-12-251-1/+2
|