summaryrefslogtreecommitdiff
path: root/src/gallium
AgeCommit message (Collapse)Author
2010-12-09r600g: indentation cleanupJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-12-09r600g: specialized upload managerJerome Glisse
Allow important performance increase by doing hw specific implementation of the upload manager helper. Drop the range flushing that is not hit with this code (and wasn't with previous neither). Performance improvement are mostly visible on slow CPU. Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-12-09r600g: avoid using pb* helper we are loosing previous cpu cycle with itJerome Glisse
r600g is up to a point where all small CPU cycle matter and pb* turn high on profile. It's mostly because pb try to be generic and thus trigger unecessary check for r600g driver. To avoid having too much abstraction & too much depth in the call embedded everythings into r600_bo. Make code simpler & faster. The performance win highly depend on the CPU & application considered being more important on slower CPU and marginal/unoticeable on faster one. Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-12-09llvmpipe: Plug fence leaks.José Fonseca
2010-12-09nvc0: call grobj_alloc for all used classesChristoph Bumiller
Only doing this to notify the DRM that we need a PGRAPH context, nvc0 hardware doesn't use actual grobjs anymore.
2010-12-09nvc0: write texture address to TIC with a RELOCChristoph Bumiller
Direct access to the bo address requires an API change.
2010-12-09nvc0: use tile flags in a way compatible with nouveauChristoph Bumiller
2010-12-09nvc0: buffer suballocation with a primitive slab allocatorChristoph Bumiller
2010-12-09nvc0: generate shader header for geometry programsChristoph Bumiller
2010-12-09nvc0: fix immediate arg for SHL/SHRChristoph Bumiller
2010-12-09nvc0: index buffers are backChristoph Bumiller
Probably because long methods are gone index buffers must be explicit again.
2010-12-09nvc0: upload constants with m2mf for the time beingChristoph Bumiller
I get mysterious lockups with the dedicated CB upload ...
2010-12-09nvc0: support primitive restartChristoph Bumiller
2010-12-09nvc0: rcp f32 also supports neg and abs modifiersChristoph Bumiller
2010-12-07r600g: fix userspace fence against lastest kernelJerome Glisse
R6XX GPU doesn't like to have two partial flush writting back to memory in row without a prior flush of the pipeline. Add PS_PARTIAL_FLUSH to flush all work between the CP and the ES, GS, VS, PS shaders. Thanks a lot to Alban Browaeys (prahal on irc) for investigating this issue. Signed-off-by: Alban Browaeys <prahal@yahoo.com> Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-12-07r600g: remove dead codeJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-12-07r300g: also revalidate the SWTCL vertex buffer after its reallocationMarek Olšák
2010-12-07r300g: validate buffers only if any of bound buffers is changedMarek Olšák
This prevents needless buffer validation (CS space checking).
2010-12-07r300g: cache packet dwords of 3D_LOAD_VBPNTR in a command buffer if possibleMarek Olšák
It's not always possible to preprocess the content of 3D_LOAD_VBPNTR in a command buffer, because the offset to all vertex buffers (which the packet depends on) is derived from the "start" parameter of draw_arrays and the "indexBias" parameter of draw_elements, but we can at least lazily make a command buffer for the case when offset == 0, which should occur most of the time.
2010-12-07u_blitter: use util_is_format_compatible in the assertMarek Olšák
2010-12-06r600g: remove useless flush mapJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-12-06r600g: avoid useless shader rebuild at draw callJerome Glisse
Avoid rebuilding constant shader state at each draw call, factor out spi update that might change at each draw call. Best would be to update spi only when revealent states change (likely only flat shading & sprite point). Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-12-06r600g: build fetch shader from vertex elementsJerome Glisse
Vertex elements change are less frequent than draw call, those to avoid rebuilding fetch shader to often build the fetch shader along vertex elements. This also allow to move vertex buffer setup out of draw path and make update to it less frequent. Shader update can still be improved to only update SPI regs (based on some rasterizer state like flat shading or point sprite ...). Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-12-06gallium/util: minor formatting fixesBrian Paul
2010-12-06mapi: Rewrite mapi_abi.py to get rid of preprocessor magic.Chia-I Wu
The preprocessor magic in mapi was nothing but obfuscation. Rewrite mapi_abi.py to generate real C code. This commit removes the hack added in 43121f20866bb89e8dac92bd92ec85a943704b7e.
2010-12-06egl: _eglFilterArray should not allocate.Chia-I Wu
Otherwise, when it is called from within a driver, the caller cannot free the returned data (on Windows).
2010-12-05r600g: Cleanup fetch shader resources in r600_pipe_shader_destroy().Henri Verbeet
2010-12-05r600g: Cleanup block bo references in r600_context_fini().Henri Verbeet
2010-12-05gallium/trace: check bind_vertex_sampler_states and set_vertex_sampler_viewsXavier Chantry
Signed-off-by: Xavier Chantry <chantry.xavier@gmail.com> Reviewed-by: Jakob Bornecrantz <wallbraker at gmail.com> Signed-off-by: Patrice Mandin <patmandin@gmail.com>
2010-12-05init ps->context with util_surfaces_get and do_getXavier Chantry
Signed-off-by: Xavier Chantry <chantry.xavier@gmail.com> Reviewed-by: Jakob Bornecrantz <wallbraker at gmail.com> Signed-off-by: Patrice Mandin <patmandin@gmail.com>
2010-12-05nvfx: fixes after array textures mergeXavier Chantry
Signed-off-by: Xavier Chantry <chantry.xavier@gmail.com> Signed-off-by: Patrice Mandin <patmandin@gmail.com>
2010-12-05r300g: optimize looping over atomsMarek Olšák
This also removes DBG_STATS (the stats can be obtained with valgrind instead).
2010-12-05r300g: cleanup winsysMarek Olšák
2010-12-05r300g: try and use all of vertex constant spaceDave Airlie
Finished up by Marek Olšák. We can set the constant space to use a different area per-call to the shader, we can avoid flushing the PVS as often as we do by spreading out the constants across the whole constant space. Signed-off-by: Marek Olšák <maraeo@gmail.com>
2010-12-05r300g: do not use the index parameter in set_constant_bufferMarek Olšák
It appears to be a constant buffer index (in case there are more constant buffers explicitly used by a shader), i.e. something that Gallium currently does not use. We treated it incorrectly as the offset to a constant buffer.
2010-12-04gallium/noop: Add prototype for noop_init_state_functions.Vinson Lee
Silences this GCC warning. noop_state.c:247: warning: no previous prototype for 'noop_init_state_functions'
2010-12-04st/vega: Fix pipe blend state for various blend modes.Chia-I Wu
rgb_src_factor and rgb_dst_factor should be PIPE_BLENDFACTOR_ONE for VG_BLEND_SRC_IN and VG_BLEND_DST_IN respectively. VG_BLEND_SRC_OVER can be supported only when the fb has no alpha channel. VG_BLEND_DST_OVER and VG_BLEND_ADDITIVE have to be supported with a shader. Note that Porter-Duff blending rules assume premultiplied alpha.
2010-12-04st/vega: Add blend shaders for all blend modes.Chia-I Wu
2010-12-04st/vega: Fix VG_BLEND_MULTIPLY.Chia-I Wu
TEMP[1].w will be needed for OUT.w just below. Use TEMP[0] to store the intermediate value.
2010-12-04st/vega: Silence uninitialized variable warning.Vinson Lee
Fixes this GCC warning. api_filters.c: In function 'execute_filter': api_filters.c:184: warning: 'tex_wrap' may be used uninitialized in this function
2010-12-04st/vega: Blending should use premultiplied alpha.Chia-I Wu
Convert color values to and back from premultiplied form for blending. Finally the rendering result of the blend demo looks much closer to that of the reference implementation.
2010-12-04st/vega: Add support for per-channel alpha.Chia-I Wu
Drawing an image in VG_DRAW_IMAGE_STENCIL mode produces per-channel alpha for use in blending. Add a new shader stage to produce and save it in TEMP[1]. For other modes that do not need per-channel alpha, the stage does MOV TEMP[1], TEMP[0].wwww
2010-12-04st/vega: Move masking after blending.Chia-I Wu
Masking should happen after blending. The shader is not entirely correct, but leave it as is for now.
2010-12-04st/vega: Refactor blend shaders.Chia-I Wu
Add a helper function, blend_generic, that supports all blend modes and per-channel alpha. Make other blend generators a wrapper to it. Both the old and new code expects premultiplied colors, yet the input is non-premultiplied. Per-channel alpha is also not used for stencil image. They still need to be fixed.
2010-12-04st/vega: Add some comments to pipeline shaders.Chia-I Wu
2010-12-03mesa: consolidate some compiler -D flagsBrian Paul
-D__STDC_CONSTANT_MACROS and -D__STDC_LIMIT_MACROS are only needed for LLVM build.
2010-12-03r300g: one more r500_index_bias_supported leftoverMarek Olšák
2010-12-03r300g: add capability bit index_bias_supportedMarek Olšák
.. instead of calling r500_index_bias_supported(..) every draw call.
2010-12-03r600g: more indentation fix + warning silencing + dead code removalJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
2010-12-03r600g: indentation fixJerome Glisse
Signed-off-by: Jerome Glisse <jglisse@redhat.com>