summaryrefslogtreecommitdiffstats
path: root/src/gallium
Commit message (Collapse)AuthorAgeFilesLines
* r600g: fix lod bias/explicit lod with cube maps.Dave Airlie2012-11-091-8/+20
| | | | | | | | | | | | While developing cube map array support I found that we didn't support this properly, also piglit didn't test for it at all. I've submitted a test to piglit to check for this, and this fixes explicit lod and lod bias with cube maps. NOTE: This is a candidate for the 9.0 branch. Signed-off-by: Dave Airlie <[email protected]>
* r600g: clarify const buffer numbering and handlingDave Airlie2012-11-094-4/+10
| | | | | | | | | For cube map arrays I'll need another driver private constant buffer, and looking forward to UBOs. So clean up with some defines, that can be modified when adding cube map array and ubos later. Signed-off-by: Dave Airlie <[email protected]>
* r600g: fix pre eg export with llvmVincent Lejeune2012-11-081-1/+1
| | | | | Reviewed-by: Alex Deucher <alexander.deucher at amd.com> Reviewed-by: Tom Stellard <thomas.stellard at amd.com>
* wayland: Destroy frame callback when destroying surfaceJonas Ådahl2012-11-071-0/+3
| | | | | | | | | | | | | | If a frame callback is not destroyed when destroying a surface, its handler function will be invoked if the surface was destroyed after the callback was requested but before it was invoked, causing a write on free:ed memory. This can happen if eglDestroySurface() is called shortly after eglSwapBuffers(). Note: This is a candidate for stable branches. Reviewed-by: Kristian Høgsberg <[email protected]>
* r600g/compute: fix call to r600_bytecode_initAlex Deucher2012-11-071-1/+2
| | | | Signed-off-by: Alex Deucher <[email protected]>
* svga: Ensure vb_transfer in svga_swtnl_draw_vbo in initialized.Vinson Lee2012-11-061-1/+1
| | | | | | | Fixes a uninitialized pointer read defect reported by Coverity. Signed-off-by: Vinson Lee <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* r600g: add in-place DB decompression and texturing with DB tilingMarek Olšák2012-11-069-80/+218
| | | | | | | | | | | | | | | | | | | | | The decompression is done in-place and only the compressed tiles are decompressed. Note: R6xx-R7xx can do that only with Z16 and Z32F. The texture unit is programmed to use non-displayable tiling and depth ordering of samples, so that it can fetch the texture in the native DB format. The latest version of the libdrm surface allocator is required for stencil texturing to work. The old one didn't create the mipmap tree correctly. We need a separate mipmap tree for stencil, because the stencil mipmap offsets are not really depth offsets/4. There are still some known bugs, but this should save some memory and it also improves performance a little bit in Lightsmark (especially with low resolutions; tested with Radeon HD 5000). The DB->CB copy is still used for transfers. Reviewed-by: Jerome Glisse <[email protected]>
* trace: Prevent segfault when passing NULL to set_vertex_buffers.José Fonseca2012-11-052-15/+23
| | | | State tracker now passes NULL buffer array to unbind buffers.
* galahad: Prevent segfault when passing NULL to set_vertex_buffers.José Fonseca2012-11-051-1/+1
| | | | State tracker now passes NULL buffer array to unbind buffers.
* util: Make u_framebuffer.h C++ safe.José Fonseca2012-11-051-0/+8
|
* nv50,nvc0: expose ARB_map_buffer_alignmentLucas Stach2012-11-044-6/+8
| | | | | | All HW buffers (also suballocated ones) are already aligned. Just make sure that also the initial sysram buffers have proper alignment.
* r600g: make tgsi-to-llvm generates store.pixel* intrinsic for fsVincent Lejeune2012-11-026-12/+130
| | | | Reviewed-by: Tom Stellard <thomas.stellard at amd.com>
* radeonsi: Implement support for vertex shader samplers.Michel Dänzer2012-11-022-22/+60
| | | | Signed-off-by: Michel Dänzer <[email protected]>
* libgl-xlib: include glheader.h instead of GL/gl.h to fix buildBrian Paul2012-11-011-1/+1
| | | | GL/gl.h doesn't define GLfixed but glapitable.h uses it.
* r600g: re-enable handling of DISCARD_RANGE, improving performanceMarek Olšák2012-11-011-2/+0
| | | | | | It seems to work for me now. Even the graphics corruption is gone. This also boosts performance in Reaction Quake.
* r600g: fix abysmal performance in Reaction QuakeMarek Olšák2012-11-012-21/+24
| | | | | | | | | | | | | The problem was we set VRAM|GTT for relocations of STATIC resources. Setting just VRAM increases the framerate 4 times on my machine. I rewrote the switch statement and adjusted the domains for window framebuffers too. NOTE: This is a candidate for the stable branches. Reviewed-by: Alex Deucher <[email protected]> Reviewed-by: Jerome Glisse <[email protected]>
* gallium/u_vbuf: document how it worksMarek Olšák2012-11-012-3/+63
|
* gallium/u_vbuf: optimize looping over the list of buffers to uploadMarek Olšák2012-11-011-9/+12
|
* gallium/u_vbuf: skip processing of buffers unused by the vertex element stateMarek Olšák2012-11-011-15/+24
|
* llvmpipe: Obey back writemask.José Fonseca2012-10-311-2/+8
| | | | | | | | Tested with a modified glean tstencil2 test. NOTE: This is a candidate for stable branches. Reviewed-by: Brian Paul <[email protected]>
* r600g: avoid shader needing too many gpr to lockup the gpu v2Jerome Glisse2012-10-313-34/+62
| | | | | | | | | | | | | | On r6xx/r7xx shader resource management need to make sure that the shader does not goes over the gpr register limit. Each specific asic has a maxmimum register that can be split btw shader stage. For each stage the shader must not use more register than the limit programmed. v2: Print an error message when discarding draw. Don't add another boolean to context structure, but rather propagate the discard boolean through the call chain. Signed-off-by: Jerome Glisse <[email protected]>
* draw: fix assertion failure in draw_emit_vertex_attrMarek Olšák2012-10-311-2/+3
| | | | | | | | | | | This is a regression since b3921e1f53833420e0a0fd581f7417. The array stores VS outputs, not FS inputs. Now llvmpipe can do 32 varyings too. NOTE: This is a candidate for the stable branches. Reviewed-by: Brian Paul <[email protected]>
* r600g: use SQ_VTX_SEMANTIC_CLEAR to clear the semantic registersMarek Olšák2012-10-314-99/+11
| | | | Reviewed-by: Alex Deucher <[email protected]>
* gallium: expose ARB_map_buffer_alignment on RadeonMarek Olšák2012-10-3113-3/+26
| | | | | | | | Reviewed-by: Brian Paul <[email protected]> v2: update relnotes-9.1 v3: use align_malloc and align_free for malloced buffers in r300g v4: document the new CAP in the docs
* r600g: use better sample positions for 8x MSAAMarek Olšák2012-10-312-12/+12
| | | | | Taken from the intel driver. The sample positions are actually a solution to the 8 queens puzzle. It gives more accurate and smoother AA.
* gallium: add start_slot parameter to set_vertex_buffersMarek Olšák2012-10-3170-420/+580
| | | | | | | | | | | | | | | | | | | | | This allows updating only a subrange of buffer bindings. set_vertex_buffers(pipe, start_slot, count, NULL) unbinds buffers in that range. Binding NULL resources unbinds buffers too (both buffer and user_buffer must be NULL). The meta ops are adapted to only save, change, and restore the single slot they use. The cso_context can save and restore only one vertex buffer slot. The clients can query which one it is using cso_get_aux_vertex_buffer_slot. It's currently set to 0. (the Draw module breaks if it's set to non-zero) It should decrease the CPU overhead when using a lot of meta ops, but the drivers must be able to treat each vertex buffer slot as a separate state (only r600g does so at the moment). I can imagine this also being useful for optimizing some OpenGL use cases. Reviewed-by: Brian Paul <[email protected]>
* st/xorg: Remove superfluous miInitializeBackingStore() callMarvin Schmidt2012-10-301-1/+0
| | | | | | | | | It was defined as an empty function since Nov 2010 and was ultimately removed completely. See xserver commit 1cb0261 Signed-off-by: Michel Dänzer <[email protected]>
* r600g: tgsi-to-llvm emits right input intrinsicsVincent Lejeune2012-10-302-20/+64
| | | | Reviewed-by: Tom Stellard <thomas.stellard at amd.com>
* dri: Convert driCreateConfigs to use a gl_format enumIan Romanick2012-10-291-3/+3
| | | | | | | | | | | This is instead of the pair of GLenums for format and type that were previously used. This is necessary for the Intel drivers to expose sRGB framebuffer formats. Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Chad Versace <[email protected]>
* r600g: implement texturing with 8x MSAA compressed surfaces for EvergreenMarek Olšák2012-10-2913-37/+270
| | | | | | | | | | The 2x and 4x MSAA cases are completely broken. The lfdptr instruction returns garbage there. The 8x MSAA case is broken on Cayman, though at least the result looks somewhat correct. Only the 8x MSAA case works on Evergreen and is enabled.
* mesa: bump MAX_VARYING to 32Marek Olšák2012-10-292-3/+3
| | | | | | | | | | | | | | | | | We're starting to get apps utilizing more than 16 varyings and most current hardware supports 32 anyway. Tested with r600g. swrast, softpipe and llvmpipe still advertise 16 varyings. This fixes a WebGL crash after launching this demo: https://developer.mozilla.org/en-US/demos/detail/falling-cubes Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=54402 NOTE: This is a candidate for the stable branches. Acked-by: Kenneth Graunke <[email protected]>
* nv50/ir: restore use of long immediate encodingsChristoph Bumiller2012-10-282-0/+9
| | | | NOTE: This is a candidate for the 9.0 branch.
* nv50,nvc0: fix 2d engine stencil-only copiesChristoph Bumiller2012-10-284-22/+48
|
* gallium/gallivm: code generation options for LLVM 3.1+Alexander V. Nikolaev2012-10-283-17/+44
| | | | | | | | | | | | | | | LLVM 3.1+ haven't more "extern unsigned llvm::StackAlignmentOverride" and friends for configuring code generation options, like stack alignment. So I restrict assiging of lvm::StackAlignmentOverride and other variables to LLVM 3.0 only, and wrote similiar code using TargetOptions. This patch fix segfaulting of WINE using llvmpipe built with LLVM 3.1 Signed-off-by: Alexander V. Nikolaev <[email protected]> Signed-off-by: José Fonseca <[email protected]>
* r600g: advertise 32 streamout vec4 outputsMarek Olšák2012-10-261-1/+1
| | | | to match the varying limit.
* softpipe: remove extraneous whitespaceBrian Paul2012-10-261-2/+0
|
* gallivm/llvmpipe: fix 64-bit %ll format compiler warnings for mingw32Brian Paul2012-10-262-8/+10
| | | | | Use the PRIx64 and PRIu64 format macros from inttypes.h. We made a similar change in prog_print.c in df2d81ea59993a77bd1f1ef96c5cf19ac692d5f7.
* r600g: advertise 32 fragment shaders inputs, not 34Marek Olšák2012-10-261-4/+1
|
* graw/fs-test: Use user constant buffers.José Fonseca2012-10-261-56/+14
| | | | Much simpler. More interesting.
* trace: Flush before drawing.José Fonseca2012-10-263-0/+11
|
* graw: Ensure new members are zeroed.José Fonseca2012-10-2615-0/+19
| | | | | Several new state members were added, and they were not being zeroed, causing random crashes.
* tests/graw: Update occlusion query example.José Fonseca2012-10-261-4/+4
|
* radeonsi: Handle TGSI_SEMANTIC_FACE.Michel Dänzer2012-10-262-1/+31
| | | | | | | Fixes two piglit tests using gl_FrontFacing. Signed-off-by: Michel Dänzer <[email protected]> Reviewed-by: Tom Stellard <[email protected]>
* radeonsi: Handle TGSI_SEMANTIC_BCOLOR.Michel Dänzer2012-10-265-15/+75
| | | | | | | | | | Put the back face colour right after the front face colour in the LDS parameter space. Fixes 18 piglit tests related to two sided lighting. Signed-off-by: Michel Dänzer <[email protected]> Reviewed-by: Tom Stellard <[email protected]>
* radeonsi: Don't snoop context state while building shaders.Michel Dänzer2012-10-263-17/+27
| | | | | | | | | Let's use the shader key describing the state. Ported from r600g commit b6521801070d52bdd5908824e82c1ce2dde16e8e. Signed-off-by: Michel Dänzer <[email protected]> Reviewed-by: Tom Stellard <[email protected]>
* radeon/llvm: Add intrinsic for reading SI FRONT_FACE VGPR in the pixel shader.Michel Dänzer2012-10-262-0/+6
| | | | | Signed-off-by: Michel Dänzer <[email protected]> Reviewed-by: Tom Stellard <[email protected]>
* r600g: split cayman common state out into a shared functionAlex Deucher2012-10-263-16/+35
| | | | | | | | | And use it for compute. This should improve compute support on cayman. Signed-off-by: Alex Deucher <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Tom Stellard <[email protected]>
* r600g: emit some additional regs on caymanAlex Deucher2012-10-261-0/+54
| | | | | | | | | These are common to both evergreen and cayman, but were not emitted on cayman. Signed-off-by: Alex Deucher <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Tom Stellard <[email protected]>
* r600g: there are 16 const buffer size regs for each shader stageAlex Deucher2012-10-261-2/+19
| | | | | | | | we were previously only setting 8 of them. Signed-off-by: Alex Deucher <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Tom Stellard <[email protected]>
* r600g: rework evergreen_init_common_regs()Alex Deucher2012-10-261-40/+33
| | | | | | | | | Move gfx specific bits out as the code is shared with compute. Signed-off-by: Alex Deucher <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Tom Stellard <[email protected]>