summaryrefslogtreecommitdiffstats
path: root/src/gallium
Commit message (Collapse)AuthorAgeFilesLines
* draw: Allocate the output buffer for output primitivesZack Rusin2013-03-271-2/+1
| | | | | | | | | | We were allocating the output buffer but using the input primitives. We need to allocate that buffer using the maximum number of output, not input, primitives. Signed-off-by: Zack Rusin <[email protected]> Reviewed-by: Brian Paul <[email protected]> Reviewed-by: José Fonseca <[email protected]>
* gallivm: Implement the breakc instructionZack Rusin2013-03-272-0/+34
| | | | | | | | Required by more modern examples. Like BRK but with a condition. Signed-off-by: Zack Rusin <[email protected]> Reviewed-by: Brian Paul <[email protected]> Reviewed-by: José Fonseca <[email protected]>
* gallivm: implement implicit primitive flushingZack Rusin2013-03-272-0/+15
| | | | | | | | | TGSI semantics currently require an implicit endprim at the end of GS if an ending primitive hasn't been emitted. Signed-off-by: Zack Rusin <[email protected]> Reviewed-by: Brian Paul <[email protected]> Reviewed-by: José Fonseca <[email protected]>
* gallium/llvm: implement geometry shaders in the llvm pathsZack Rusin2013-03-2710-79/+1285
| | | | | | | | | This commits implements code generation of the geometry shaders in the SOA paths. All the code is there but bugs are likely present. Signed-off-by: Zack Rusin <[email protected]> Reviewed-by: Brian Paul <[email protected]> Reviewed-by: José Fonseca <[email protected]>
* draw/gs: Fetch more than one primitive per invocationZack Rusin2013-03-272-13/+48
| | | | | | | | | | Allows executing gs on up to 4 primitives at a time. Will also be required by the llvm code because there we definitely don't want to flush with just a single primitive. Signed-off-by: Zack Rusin <[email protected]> Reviewed-by: Brian Paul <[email protected]> Reviewed-by: José Fonseca <[email protected]>
* draw/gs: Abstract the portions of GS that are tgsi specificZack Rusin2013-03-272-128/+156
| | | | | | | | | To be able to add llvm paths later on we need to have some common interface for them. Signed-off-by: Zack Rusin <[email protected]> Reviewed-by: Brian Paul <[email protected]> Reviewed-by: José Fonseca <[email protected]>
* draw/llvm: Remove unused gs_constants from jit_contextZack Rusin2013-03-273-25/+11
| | | | | | | | | The member was never used and we'll need to handle it differently because gs will also need samplers/textures setup. Signed-off-by: Zack Rusin <[email protected]> Reviewed-by: Brian Paul <[email protected]> Reviewed-by: José Fonseca <[email protected]>
* graw/gs: add missing max output vertices to all testsZack Rusin2013-03-274-0/+4
| | | | | | | | A few tests were missing this crucial property. Signed-off-by: Zack Rusin <[email protected]> Reviewed-by: Brian Paul <[email protected]> Reviewed-by: José Fonseca <[email protected]>
* radeonsi: add cs tracing v3Jerome Glisse2013-03-276-1/+124
| | | | | | | | | | | Same as on r600, trace cs execution by writting cs offset after each states, this allow to pin point lockup inside command stream and narrow down the scope of lockup investigation. v2: Use WRITE_DATA packet instead of WRITE_MEM v3: Remove useless nop packet Signed-off-by: Jerome Glisse <[email protected]>
* radeon/llvm: document LLVM commitChristian König2013-03-261-1/+1
| | | | | | We need at least that revision to work correctly now. Signed-off-by: Christian König <[email protected]>
* radeonsi: add preloading for all samplersChristian König2013-03-261-12/+45
| | | | | Signed-off-by: Christian König <[email protected]> Reviewed-by: Michel Dänzer <[email protected]>
* radeonsi: add preloading of all constantsChristian König2013-03-261-16/+51
| | | | | Signed-off-by: Christian König <[email protected]> Reviewed-by: Michel Dänzer <[email protected]>
* radeonsi: mark most intrinsics as readnone/nounwindChristian König2013-03-261-8/+10
| | | | | Signed-off-by: Christian König <[email protected]> Reviewed-by: Michel Dänzer <[email protected]>
* radeonsi: mark all loads as constantChristian König2013-03-261-7/+25
| | | | | Signed-off-by: Christian König <[email protected]> Reviewed-by: Michel Dänzer <[email protected]>
* radeonsi: remove wqm intrinsicChristian König2013-03-261-9/+0
| | | | | | | Now the backend handles that itself. Signed-off-by: Christian König <[email protected]> Reviewed-by: Michel Dänzer <[email protected]>
* radeon/llvm: remove uneeded inclusionChristian König2013-03-261-1/+0
| | | | | | | The include isn't needed and the file has moved with LLVM master. Signed-off-by: Christian König <[email protected]> Reviewed-by: Michel Dänzer <[email protected]>
* gallium/docs: document get_driver_query_infoMarek Olšák2013-03-261-0/+12
|
* r600g: add a driver query returning the amount of requested VRAM and GTT memoryMarek Olšák2013-03-268-0/+61
|
* r600g: add a driver query returning the number of draw_vbo callsMarek Olšák2013-03-264-5/+65
| | | | between begin_query and end_query
* st/dri: integrate the HUDMarek Olšák2013-03-263-0/+11
| | | | Reviewed-by: Brian Paul <[email protected]>
* gallium: implement a heads-up display moduleMarek Olšák2013-03-269-0/+2082
| | | | | | Reviewed-by: Brian Paul <[email protected]> v2: lots of cosmetic changes
* gallium: add interface for driver queries like performance counters, etc.Marek Olšák2013-03-263-1/+24
| | | | | | | The pipe query interface is reused. The list of available queries can be obtained using pipe_screen::get_driver_query_info. Reviewed-by: Brian Paul <[email protected]>
* gallium/tgsi: fix valgrind warningMarek Olšák2013-03-261-1/+1
| | | | | | "Conditional jump or move depends on uninitialised value(s)" Reviewed-by: Brian Paul <[email protected]>
* cso: add constant buffer save/restore feature for postprocessingMarek Olšák2013-03-264-2/+78
| | | | | Postprocessing is an internal meta op and should restore the states it changes.
* radeonsi: fix crash while binding a NULL constant bufferMarek Olšák2013-03-261-1/+1
| | | | Reviewed-by: Michel Dänzer <[email protected]>
* r600g: fix crash while binding a NULL constant bufferMarek Olšák2013-03-261-1/+1
|
* r300g: fix crash while binding a NULL constant bufferMarek Olšák2013-03-261-1/+1
|
* r600g: Use virtual address for PIPE_QUERY_SO* in r600_emit_query_endMartin Andersson2013-03-251-2/+3
| | | | | | | | | | | | Virtual address is used for PIPE_QUERY_SO* queries in r600_emit_query_begin, but not in r600_emit_query_end. This will trigger a GPU fault when one of those queries is made and virtual address is enabled. Note: this is a candidate for the 9.1 branch Signed-off-by: Alex Deucher <[email protected]>
* freedreno: use u_debug for debug env varsRob Clark2013-03-251-3/+10
| | | | Signed-off-by: Rob Clark <[email protected]>
* gallium: undef PACKAGE_* macros to silence warningsBrian Paul2013-03-251-0/+8
| | | | Reviewed-by: Jose Fonseca <[email protected]>
* gallivm: init vars to silence warningsBrian Paul2013-03-251-2/+2
| | | | Reviewed-by: Jose Fonseca <[email protected]>
* freedreno: prefer sw upload for texturesRob Clark2013-03-251-0/+2
| | | | | | | Since we are UMA, in most cases the GPU blit doesn't make much sense for texture upload. Signed-off-by: Rob Clark <[email protected]>
* freedreno: track maximal scissor boundsRob Clark2013-03-259-136/+162
| | | | | | | | | | Optimize out parts of the render target that are scissored out by taking into account maximal scissor bounds in fd_gmem_render_tiles(). This is a big win on things like gnome-shell which frequently do partial screen updates. Signed-off-by: Rob Clark <[email protected]>
* gallivm: move code for dealing with rgb9e5 and r11g11b10 formats to own fileRoland Scheidegger2013-03-245-343/+392
| | | | | This is really not generic conversion stuff and the code very particular to these formats.
* llvmpipe: Fix assertions with assignment instead of comparison.Vinson Lee2013-03-241-2/+2
| | | | | | | Fixes assign instead of compare defects reported by Coverity. Signed-off-by: Vinson Lee <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]>
* clover: add dynamic_cast results checking down in clSetKernelArgument() code ↵Dmitry Cherkassov2013-03-241-0/+12
| | | | | | | path. Signed-off-by: Dmitry Cherkassov <[email protected]> Signed-off-by: Francisco Jerez <[email protected]>
* gallivm: Add code for rgb9e5 shared exponent format to float conversionRoland Scheidegger2013-03-243-3/+118
| | | | | | | | | | | | And use this (and the code for r11g11b10 packed float to float conversion) in the soa texturing code (the generated code looks quite good). Should be an order of magnitude faster probably than using the fallback (not measured). Tested with piglit texwrap GL_EXT_packed_float and GL_EXT_texture_shared_exponent respectively (didn't find much else using it). Reviewed-by: Jose Fonseca <[email protected]>
* gallium,st/mesa: don't use blit-based transfers with software rasterizersMarek Olšák2013-03-2311-1/+20
| | | | | | | | | The blit-based paths for TexImage, GetTexImage, and ReadPixels aren't very fast with software rasterizer. Now Gallium drivers have the ability to turn them off. Reviewed-by: Brian Paul <[email protected]> Tested-by: Brian Paul <[email protected]>
* llvmpipe: add EXT_packed_float render target format supportRoland Scheidegger2013-03-224-2/+382
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New conversion code to handle conversion from/to r11g11b10 AoS to/from SoA floats, and also add code for conversion from rgb9e5 AoS to float SoA (which works pretty much the same as r11g11b10 except for the packing). (This code should also be used for texture sampling instead of relying on u_format conversion but it's not yet, so rgb9e5 is unused.) Unfortunately a crazy amount of hacks is necessary to get the conversion code running in llvmpipe's generate_unswizzled_blend, which isn't well suited for formats where the storage representation has nothing to do with what's needed for blending (moreover, the conversion will convert from packed AoS values, which is the storage format, to float SoA values, because this is much more natural for the conversion, and likewise from SoA values to packed AoS values - but the "blend" (which includes trivial things like partial mask) works on AoS values, so incoming fs values will go SoA->AoS, values from destination will go packed AoS->SoA->AoS, then do blend, then AoS->SoA->packed AoS which probably isn't the most efficient way though the shuffles are probably bearable). Passes piglit fbo-blending-formats (with GL_EXT_packed_float parameter), still need to verify Inf/NaNs (where most of the complexity in the conversion comes from actually). v2: drop the (very bogus) rgb9e5 part, and do component extraction in the helper code for r11g11b10 to float conversion, making the code slightly more compact (suggested by Jose), now that there are no other callers left this works quite well. (Could do the same for the opposite way but it's less than ideal there, final part of packing needs to be done in caller anyway and there'd be another conditional.) v3: minor style and comment fixes. Also fix a potential issue with negative zero being potentially returned by max(src, zero) as we don't have well-defined min/max behavior (fortunately no additonal cost). Reviewed-by: Jose Fonseca <[email protected]>
* r600g: Honour legacy debugging environment variablesMichel Dänzer2013-03-221-0/+10
| | | | | | | | This helps minimize confusion / effort when moving between branches or helping others. Reviewed-by: Alex Deucher <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* freedreno: add pipe->blitRob Clark2013-03-211-3/+48
| | | | Signed-off-by: Rob Clark <[email protected]>
* softpipe: silence some asst. MSVC type warnings in sp_tex_sample.cBrian Paul2013-03-211-6/+6
|
* softpipe: silence some MSVC signed/unsigned warningsBrian Paul2013-03-212-2/+2
|
* softpipe: silence some MSVC float/double warningsBrian Paul2013-03-211-6/+6
|
* rbug: silence some MSVC signed/unsigned warningsBrian Paul2013-03-212-2/+2
|
* postprocess: silence some MSVC float/int warningsBrian Paul2013-03-212-4/+4
|
* vega: fix MSVC warning about missing return statementBrian Paul2013-03-211-0/+1
|
* radeonsi: Emit pixel shader state even when only the vertex shader changedMichel Dänzer2013-03-211-0/+5
| | | | | | | | Fixes random failures with piglit glsl-max-varyings. NOTE: This is a candidate for the 9.1 branch. Reviewed-by: Christian König <[email protected]>
* nvc0: fix max varying count, move CLIPVERTEX,FOG out of the wayChristoph Bumiller2013-03-203-12/+36
| | | | | | The card spews an error if I use all 128 generic slots. Apparently the real limit isn't just dictated by the address space layout.
* gallium: add TGSI_SEMANTIC_TEXCOORD,PCOORD v3Christoph Bumiller2013-03-2025-81/+132
| | | | | | | | | | | | | | | This makes it possible to identify gl_TexCoord and gl_PointCoord for drivers where sprite coordinate replacement is restricted. The new PIPE_CAP_TGSI_TEXCOORD decides whether these varyings should be hidden behind the GENERIC semantic or not. With this patch only nvc0 and nv30 will request that they be used. v2: introduce a CAP so other drivers don't have to bother with the new semantic v3: adapt to introduction gl_varying_slot enum