Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | r600g: merge alu groups | Christian König | 2011-01-13 | 2 | -37/+150 |
| | |||||
* | r600g: implement replacing gpr with pv and ps | Christian König | 2011-01-13 | 3 | -5/+63 |
| | |||||
* | r600g: add missing RECIPSQRT_CLAMPED to r600_bc_get_num_operands | Christian König | 2011-01-13 | 1 | -0/+1 |
| | |||||
* | r600g: rework bank swizzle code | Christian König | 2011-01-13 | 2 | -183/+174 |
| | |||||
* | r600g: fix alu slot assignment | Christian König | 2011-01-13 | 1 | -15/+167 |
| | |||||
* | r600g: optimize away CF ALU instructions even if type doesn't match | Christian König | 2011-01-13 | 1 | -3/+16 |
| | |||||
* | nvc0: identify POINT_RASTER_RULES, add POINT_SMOOTH state | Christoph Bumiller | 2011-01-13 | 4 | -19/+42 |
| | | | | | | Point smoothing requires rasterization rules to be set to OGL. Sorry for the extra noise caused by the header update. | ||||
* | r600g: Silence uninitialized variable warnings. | Vinson Lee | 2011-01-13 | 1 | -4/+4 |
| | |||||
* | nvc0: disable calling of sw methods we don't implement | Ben Skeggs | 2011-01-13 | 1 | -0/+4 |
| | | | | | | | Left in the code as a marker of what NVIDIA do, just in case we need to do this some day. Signed-off-by: Ben Skeggs <[email protected]> | ||||
* | nvc0: fix mp_stack_bo relocation | Ben Skeggs | 2011-01-13 | 1 | -2/+2 |
| | | | | | | | | | | Fixes a PT_NOT_PRESENT error cause by: - allocating in VRAM - emitting GART relocs to 0x17bc/0x17c0, moving the buffer - telling the bufmgr that the buffer should be in VRAM when we use it, but not correcting the value sent to 0x17bc/0x17c0. Signed-off-by: Ben Skeggs <[email protected]> | ||||
* | noop: change var type to silence warning | Brian Paul | 2011-01-12 | 1 | -1/+1 |
| | |||||
* | r600g: also look at tex inst when for maximum gpu count | Christian König | 2011-01-12 | 1 | -1/+7 |
| | |||||
* | r600g: implement output modifiers and use them to further optimize LRP | Christian König | 2011-01-12 | 4 | -0/+33 |
| | |||||
* | r600g: use special constants for 0, 1, -1, 1.0f, 0.5f etc | Christian König | 2011-01-12 | 1 | -12/+44 |
| | |||||
* | r600g: optimize temp register handling for LRP | Christian König | 2011-01-12 | 1 | -34/+38 |
| | |||||
* | r600g: optimize away CF_INST_POP | Christian König | 2011-01-12 | 3 | -3/+29 |
| | | | | | If last instruction is an CF_INST_ALU we don't need to emit an additional CF_INST_POP for stack clean up after an IF ELSE ENDIF. | ||||
* | r600g: make dumping of shaders an option | Christian König | 2011-01-12 | 1 | -4/+14 |
| | |||||
* | r600g: fix alu dumping | Christian König | 2011-01-12 | 1 | -19/+13 |
| | |||||
* | r600g: improve r600_bc_dump | Christian König | 2011-01-12 | 1 | -28/+131 |
| | |||||
* | r600g: texture instructions also work fine with TGSI_FILE_INPUT | Christian König | 2011-01-12 | 1 | -1/+3 |
| | |||||
* | r600g: DP4 also supports writemasking | Christian König | 2011-01-12 | 1 | -8/+6 |
| | |||||
* | r600g: Why all this fiddling with tgsi_helper_copy? | Christian König | 2011-01-12 | 1 | -21/+41 |
| | | | | | | | | tgsi_helper_copy is used on several occasions to copy a temporary result into the real destination register to emulate writemasks for OP3 and reduction operations. According to R600 ISA that's unnecessary. This patch fixes this use for MAD, CMP and DP4. | ||||
* | r600g: fix tex and vtx joining | Christian König | 2011-01-12 | 1 | -2/+2 |
| | |||||
* | r600g: Fixed SIN/COS/SCS for the case where the operand is a literal. | Tilman Sauerbeck | 2011-01-11 | 1 | -2/+15 |
| | | | | | Signed-off-by: Tilman Sauerbeck <[email protected]> Reviewed-by: Alex Deucher <[email protected]> | ||||
* | r600g: move user fence into base radeon structure | Jerome Glisse | 2011-01-11 | 1 | -3/+0 |
| | | | | | | | This avoid any issue when context is free and we still try to access fence through radeon structure. Signed-off-by: Jerome Glisse <[email protected]> | ||||
* | r300g: add debug option for buffer upload logging | Marek Olšák | 2011-01-10 | 3 | -0/+9 |
| | |||||
* | noop: make noop useable like trace or rbug | Jerome Glisse | 2011-01-09 | 2 | -47/+35 |
| | | | | | | | | If you want to enable noop set GALLIUM_NOOP=1 as an env variable. You need first to enable noop wrapping for your driver see change to src/gallium/targets/dri-r600/ in this commit as an example. Signed-off-by: Jerome Glisse <[email protected]> | ||||
* | r300g: do not upload the same user buffer several times | Marek Olšák | 2011-01-09 | 1 | -1/+3 |
| | | | | Performance++. | ||||
* | nvc0: implement queries | Christoph Bumiller | 2011-01-09 | 10 | -23/+432 |
| | |||||
* | i965g: fix warnings | Dave Airlie | 2011-01-09 | 2 | -2/+1 |
| | |||||
* | i965g: update intel_decode from upstream. | Dave Airlie | 2011-01-09 | 4 | -137/+432 |
| | |||||
* | i965g: update disassembler code from classic. | Dave Airlie | 2011-01-09 | 8 | -34/+95 |
| | | | | still a bit of work to do, the winsys gen setting is a bit of a hack. | ||||
* | i965g: update brw_defines.h from classic driver | Dave Airlie | 2011-01-09 | 3 | -37/+397 |
| | |||||
* | i965g: update brw_structs.h from classic driver. | Dave Airlie | 2011-01-09 | 3 | -88/+288 |
| | |||||
* | i965g: update to similiar gen stuff as i965 | Dave Airlie | 2011-01-09 | 33 | -151/+173 |
| | |||||
* | r300g: fix crash when flushing ZMASK | Marek Olšák | 2011-01-09 | 5 | -92/+81 |
| | | | | | | | | | | 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. | ||||
* | nvfx,nv50: pipe_reference the constant buffers | Christoph Bumiller | 2011-01-08 | 2 | -6/+5 |
| | |||||
* | nvc0: fix primitive restart in immediate mode | Christoph Bumiller | 2011-01-08 | 2 | -9/+18 |
| | |||||
* | r300g: fix a surface leak when flushing ZMASK | Marek Olšák | 2011-01-08 | 1 | -0/+1 |
| | |||||
* | r300g: rework command submission and resource space checking | Marek Olšák | 2011-01-08 | 5 | -97/+96 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. | ||||
* | nvc0: fix reloc domain conflict on buffer migration | Christoph Bumiller | 2011-01-08 | 1 | -12/+12 |
| | | | | | Occurred because the code assumed that buf->domain would remain equal to old_domain. | ||||
* | nvc0: upload user buffers only from draw info min to max index | Christoph Bumiller | 2011-01-08 | 2 | -3/+9 |
| | | | | There are actually applications that profit immensely from this. | ||||
* | nvc0: fix emission of first 3 u8 indices to RING_NI | Christoph Bumiller | 2011-01-08 | 1 | -1/+1 |
| | |||||
* | nvc0: reset mt transfer address after read loop over layers | Christoph Bumiller | 2011-01-08 | 1 | -0/+1 |
| | |||||
* | nvc0: tie buffer memory release to the buffer fence | Christoph Bumiller | 2011-01-08 | 1 | -4/+7 |
| | | | | | ... instead of the next fence to be emitted. This way we have a chance to reclaim the storage earlier. | ||||
* | r300g: Remove invalid assertion. | Łukasz Krotowski | 2011-01-08 | 1 | -1/+0 |
| | | | | | | | Invalid after be1af4394e060677b7db6bbb8e3301e38a3363da (user buffer creation with width0 == ~0). Signed-off-by: Marek Olšák <[email protected]> | ||||
* | r600g: Also set const_offset if the buffer is not a user buffer in ↵ | Henri Verbeet | 2011-01-07 | 1 | -0/+2 |
| | | | | r600_upload_const_buffer(). | ||||
* | r600g: Update some comments for Evergreen. | Henri Verbeet | 2011-01-07 | 1 | -1/+3 |
| | |||||
* | r600g: Split ALU clauses based on used constant cache lines. | Henri Verbeet | 2011-01-07 | 2 | -21/+129 |
| | |||||
* | r600g: Consistently use the copy of the alu instruction in ↵ | Henri Verbeet | 2011-01-07 | 1 | -9/+9 |
| | | | | r600_bc_add_alu_type(). |