summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/i915
Commit message (Collapse)AuthorAgeFilesLines
* gallium: include u_format.h for util_format_is_supportedMarcin Slusarz2011-04-171-0/+1
| | | | | | | | | | | | Without it gcc complains: nv50_screen.c: In function ‘nv50_screen_is_format_supported’: nv50_screen.c:48: warning: implicit declaration of function ‘util_format_is_supported’ and handles it wrongly - util_format_is_supported returns boolean, which is typedef'ed to uchar, but function without prototype is assumed to return int. For me nv50_screen_is_format_supported was returning true for float formats without --enable-texture-float...
* gallium: add and use generic function for querying patented format support (v2)Marek Olšák2011-04-151-0/+3
| | | | v2: Unsigned floats are allowed regardless of the configure switch.
* i915g: fix braino in the static state reworkDaniel Vetter2011-03-151-1/+2
| | | | | | For mip-map level rendering, both draw offset and size tend to change ... Signed-off-by: Daniel Vetter <[email protected]>
* i915g: implement early zDaniel Vetter2011-03-154-20/+55
| | | | | | v2: Make it actually work. Signed-off-by: Daniel Vetter <[email protected]>
* i915g: split up static stateDaniel Vetter2011-03-155-28/+54
| | | | | | | | Early Z support is set in the DST_VARS command. Hence split up static state emission to avoid reissuing to much on fragment shader changes, especially the costly dst buffer relocations. Signed-off-by: Daniel Vetter <[email protected]>
* i915g: Lie more so we get GLSLJakob Bornecrantz2011-03-131-2/+3
| | | | Lots of piglit tests are lazy and wants GLSL
* i915g: Point sprite cap could be supportedJakob Bornecrantz2011-03-131-1/+2
|
* i915g: Sort cap listJakob Bornecrantz2011-03-131-1/+1
|
* i915g: fix transfer coherencyDaniel Vetter2011-03-123-26/+7
| | | | | | | | | | | | The kernel drm takes care of all coherency as long as we don't forget to submit all outstanding commands in the batchbuffer ... Also move batchbuffer initialization up because otherwise transfers for some helper textures fail with a segmentation fault. And kill the dead code, flushes should now be correct everywhere. Signed-off-by: Daniel Vetter <[email protected]>
* i915g: don't recalculate fb dimensionDaniel Vetter2011-03-123-31/+4
| | | | | | The statetracker should do this for us correctly. Signed-off-by: Daniel Vetter <[email protected]>
* i915g: use y-tiling when the blitter is not usedDaniel Vetter2011-03-121-1/+4
| | | | | | The blitter is broken. Who'd have guessed? Signed-off-by: Daniel Vetter <[email protected]>
* i915g: implement copy_region using u_blitterDaniel Vetter2011-03-124-9/+128
| | | | Signed-off-by: Daniel Vetter <[email protected]>works
* i915g: fix use after freeDaniel Vetter2011-03-122-3/+3
| | | | | | | Pipe templates should be copied if still needed after the create call completes. Signed-off-by: Daniel Vetter <[email protected]>
* gallium: remove flags from the flush functionMarek Olšák2011-03-111-1/+1
| | | | | | | | | | The drivers have been changed so that they behave as if all of the flags were set. This is already implicit in most hardware drivers and required for multiple contexts. Some state trackers were also abusing the PIPE_FLUSH_RENDER_CACHE flag to decide whether flush_frontbuffer should be called. New flag ST_FLUSH_FRONT has been added to st_api.h as a replacement.
* gallium: remove the geom_flags param from is_format_supportedMarek Olšák2011-03-111-2/+1
|
* gallium: cleanup fence_signalled and fence_finishMarek Olšák2011-03-111-7/+5
| | | | So that they don't have the driver-specific param and return type.
* gallium: kill is_resource_referencedMarek Olšák2011-03-113-3/+0
| | | | Only st/xorg used it and even incorrectly with regards to pipelined transfers.
* i915g: implement surface clear functions using hw-clearDaniel Vetter2011-03-104-15/+103
| | | | | | Tested by temporarily using util_clear even when not using the blitter. Signed-off-by: Daniel Vetter <[email protected]>
* i915g: make set_framebuffer_state more robustDaniel Vetter2011-03-101-1/+2
| | | | | | u_blitter is lazy and doesn't fully clear it's stack-allocated fb. Signed-off-by: Daniel Vetter <[email protected]>
* i915g: implement hw clearDaniel Vetter2011-03-108-6/+131
| | | | | | | | | | | | | | | Benefits: - spares us a relocation. - needed for zone rendering (if that ever happens). - just awesome. v2: Rename the debug option. Completely disabling the blitter is required for Y tiling to work, so this option will cover other code paths in the future. v3: Implement suggestions by Jakob Bornecrantz. Signed-off-by: Daniel Vetter <[email protected]>
* i915g: blitter handles overlapping blitsDaniel Vetter2011-03-101-1/+0
| | | | | | No need to assert. Signed-off-by: Daniel Vetter <[email protected]>
* i915g: enable separate depth/stencil clearsDaniel Vetter2011-03-101-1/+1
| | | | Signed-off-by: Daniel Vetter <[email protected]>
* i915g: streamline derived state updates of the driver pipelineDaniel Vetter2011-03-103-4/+2
| | | | | | | | Flushing the batch/hw backend doesn't invalidate the derived state. So kill the unnecessary function calls and add an assert in emit_hardware_state for paranoia. Signed-off-by: Daniel Vetter <[email protected]>
* i915g: don't validate a NULL vboDaniel Vetter2011-03-101-1/+1
| | | | | | | With the new clear code this is possible (if the app call glClear before drawing the first primitive). Signed-off-by: Daniel Vetter <[email protected]>
* gallium: add timeout parameter to fence_finishMarek Olšák2011-03-081-1/+2
| | | | | This is a follow-up to the ARB_sync patch for st/mesa and completes the ARB_sync implementation.
* i915g: update TODODaniel Vetter2011-03-061-10/+7
| | | | | | | | | Comments about the deleted stuff: - openaren hang: likely caused by the vertex corruptions, fixed by Jakob. - tiling: Y-tiling works with my hw-clear branch. X-tiling works as merged to master a while ago (execbuf2 version). Signed-off-by: Daniel Vetter <[email protected]>
* gallium: split CAP_INSTANCE_DRAWING into INSTANCEID and INSTANCE_DIVISORMarek Olšák2011-03-051-1/+2
| | | | | | | | ARB_instanced_arrays is a subset of D3D9. ARB_draw_instanced is a subset of D3D10. The point of this change is to allow D3D9-level drivers to enable ARB_instanced_arrays without ARB_draw_instanced.
* i915g: Use tgsi_info from fragment shader insteadJakob Bornecrantz2011-03-051-4/+1
|
* i915g: use passthough shader for empty fragment programsDaniel Vetter2011-03-041-3/+15
| | | | | | | | | | The hw doesn't like it - demos/shadowtex is broken. The emitted shader isn't totally empty though, the depth write fixup gets emitted instead. Maybe that one is somewhat fishy, too? Idea for this patch from Jakob Bornecrantz. Signed-off-by: Daniel Vetter <[email protected]>
* i915g: remove extra semicolonBrian Paul2011-03-011-1/+1
|
* i915g: kill relocs accoutingDaniel Vetter2011-03-018-30/+20
| | | | | | | No one ever cared. libdrm does dynamic resizing of its reloc-table, anyway. Signed-off-by: Daniel Vetter <[email protected]>
* i915g: switch to the exact batch space reservation codeDaniel Vetter2011-03-011-18/+5
| | | | Signed-off-by: Daniel Vetter <[email protected]>
* i915g: split up hw state emission into small atomsDaniel Vetter2011-03-012-275/+309
| | | | Signed-off-by: Daniel Vetter <[email protected]>
* i915g: fix i915_winsys_batchbuffer_writeDaniel Vetter2011-03-011-1/+1
| | | | Signed-off-by: Daniel Vetter <[email protected]>
* i915g: implement cache flushingDaniel Vetter2011-02-276-8/+62
| | | | | | | | | | | With an extremely dumb strategy. But it's the same i915c employs. Also improve the hw_atom code slightly by statically specifying the required batch space. For extremely variably stuff (shaders, constants) it would probably be better to add a new parameter to the hw_atom->validate function. Signed-off-by: Daniel Vetter <[email protected]>
* i915g: buffer validation for blitterDaniel Vetter2011-02-271-0/+11
| | | | Signed-off-by: Daniel Vetter <[email protected]>
* i915g: buffer validation for render stateDaniel Vetter2011-02-273-0/+87
| | | | | | | | Also contains the first few bits for hw state atoms. v2: Implement suggestion by Jakob Bornecrantz. Signed-off-by: Daniel Vetter <[email protected]>
* i915g/winsys: buffer validation supportDaniel Vetter2011-02-271-0/+12
| | | | | | | v2: Add the batch bo to the libdrm validation lost, for otherwise libdrm won't take previously used buffers into account. Signed-off-by: Daniel Vetter <[email protected]>
* i915g: cleanup static state calculation, part 2Daniel Vetter2011-02-273-48/+48
| | | | | | Now also for the DRAW_RECT command Signed-off-by: Daniel Vetter <[email protected]>
* i915g: cleanup static state calculation, part 1Daniel Vetter2011-02-273-89/+103
| | | | | | | Move it to i915_state_static.c This way i915_emit_state.c only emits state and doesn't (re)calculate it. Signed-off-by: Daniel Vetter <[email protected]>
* i915g: make dynamic state emission actually lazyDaniel Vetter2011-02-261-1/+1
| | | | | | Premature semicolon. Signed-off-by: Daniel Vetter <[email protected]>
* i915g: Handle null constants properlyJakob Bornecrantz2011-02-261-3/+6
|
* i915g: fix null deref in draw_rect emissionDaniel Vetter2011-02-261-4/+8
| | | | Signed-off-by: Daniel Vetter <[email protected]>
* i915g: simplify math in constants emissionDaniel Vetter2011-02-261-1/+1
| | | | | | The old code even falls apart for nr == 0 (which is caught earlier, but)! Signed-off-by: Daniel Vetter <[email protected]>
* i915g: Lazy emit dynamic stateJakob Bornecrantz2011-02-245-40/+36
|
* i915g: Lazy emit immediate stateJakob Bornecrantz2011-02-245-55/+59
|
* i915g: Disable LIS7 state updates for nowJakob Bornecrantz2011-02-242-1/+5
|
* i915g: Clean up in i915_state_immediateJakob Bornecrantz2011-02-241-5/+1
|
* i915g: Remove outdated commentJakob Bornecrantz2011-02-241-8/+0
|
* i915g: Enable mirror repeat wrap modeJakob Bornecrantz2011-02-243-6/+4
|