summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/svga
Commit message (Collapse)AuthorAgeFilesLines
* svga: Integer constant register file has a separate namespace.Michal Krol2010-09-203-8/+9
| | | | | | Count int and float constants independently. Since there are only few i# constants available and hundreds of c# constants, it would be too easy to end up with an i# declaration out of its range.
* svga: Fix relative addressing translation for pixel shaders.Michal Krol2010-09-201-14/+37
| | | | | | | | | | | | Pixel shaders do not have address registers a#, only one loop register aL. Our only hope is to assume the address register is in fact a loop counter and replace it with aL. Do not translate ARL instruction for pixel shaders -- MOVA instruction is only valid for vertex saders. Make it more explicit relative addressing of inputs is only valid for pixel shaders and constants for vertex shaders.
* gallium: introduce get_shader_param (ALL DRIVERS CHANGED) (v3)Luca Barbieri2010-09-141-51/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changes in v3: - Also change trace, which I forgot about Changes in v2: - No longer adds tessellation shaders Currently each shader cap has FS and VS versions. However, we want a version of them for geometry, tessellation control, and tessellation evaluation shaders, and want to be able to easily query a given cap type for a given shader stage. Since having 5 duplicates of each shader cap is unmanageable, add a new get_shader_param function that takes both a shader cap from a new enum and a shader stage. Drivers with non-unified shaders will first switch on the shader and, within each case, switch on the cap. Drivers with unified shaders instead first check whether the shader is supported, and then switch on the cap. MAX_CONST_BUFFERS is now per-stage. The geometry shader cap is removed in favor of checking whether the limit of geometry shader instructions is greater than 0, which is also used for tessellation shaders. WARNING: all drivers changed and compiled but only nvfx tested
* svga: Fix CMP translation for vertex shader targets.Michal Krol2010-08-301-0/+19
| | | | | SVGA3DOP_CMP is not supported for vertex shaders; use SLT + LRP instead.
* svga: Re-emit bound rendertargets and texture samplers at the beginning of ↵José Fonseca2010-08-304-8/+27
| | | | | | | | | every command buffer. Only non null resources. To ensure that relocations are emitted for every resource currently referred.
* draw: specialized cliptesting routinesKeith Whitwell2010-08-251-1/+2
|
* gallium: Use draw_set_index_buffer and others.Chia-I Wu2010-08-251-11/+6
| | | | | | Update all drivers to use draw_set_index_buffer, draw_set_mapped_index_buffer, and draw_vbo. Remove draw_set_mapped_element_buffer and draw_set_mapped_element_buffer_range.
* svga: Remove redundant svga_draw_range_elements.Chia-I Wu2010-08-253-87/+45
| | | | | | | That is, implement draw_vbo directly. As a result, svga_swtnl_draw_range_elements is also replaced by svga_swtnl_draw_vbo. This commit should not have any functional change.
* svga: Do not shortcut NULL surface relocations with SVGA3D_INVALID_ID.José Fonseca2010-08-222-6/+9
| | | | | How to cope with NULL surface relocations should be entirely at winsys' discretion.
* gallium: make all checks for PIPE_TEXTURE_2D check for PIPE_TEXTURE_RECT tooLuca Barbieri2010-08-202-1/+3
| | | | | | | Searched for them with: git grep -E '[!=]=.*PIPE_TEXTURE_2D|PIPE_TEXTURE_2D.*[!=]=|case.*PIPE_TEXTURE_2D' Behavior hasn't been changed.
* gallium: Keep only pipe_context::draw_vbo.Chia-I Wu2010-07-291-25/+0
| | | | | | | That is, remove pipe_context::draw_arrays, pipe_context::draw_elements, pipe_context::draw_arrays_instanced, pipe_context::draw_elements_instanced, pipe_context::draw_range_elements.
* gallium: Implement draw_vbo and set_index_buffer for all drivers.Chia-I Wu2010-07-293-0/+44
| | | | | | | | | | | | | | | Some drivers define a generic function that is called by all drawing functions. To implement draw_vbo for such drivers, either draw_vbo calls the generic function or the prototype of the generic function is changed to match draw_vbo. Other drivers have no such generic function. draw_vbo is implemented by calling either draw_arrays and draw_elements. For most drivers, set_index_buffer does not mark the state dirty for tracking. Instead, the index buffer state is emitted whenever draw_vbo is called, just like the case with draw_elements. It surely can be improved.
* Merge branch 'gallium-drm-driver-drescriptor'Jakob Bornecrantz2010-06-283-3/+43
|\ | | | | | | | | | | | | | | | | Conflicts: src/gallium/state_trackers/egl/x11/native_dri2.c src/gallium/state_trackers/egl/x11/native_x11.c src/gallium/state_trackers/egl/x11/native_x11.h src/gallium/state_trackers/xorg/xorg_driver.c src/gallium/winsys/radeon/drm/radeon_drm.c
| * svga: Move bootstrap code to targetsJakob Bornecrantz2010-06-063-3/+43
| |
* | gallium: adjust the query interface to support custom typesZack Rusin2010-06-081-2/+3
|/ | | | we need to change it to support composite types
* svga: Remove unnecessary header.Vinson Lee2010-06-031-1/+0
|
* Merge branch 'gallium-newclear'Roland Scheidegger2010-06-033-4/+8
|\ | | | | | | | | Conflicts: src/gallium/state_trackers/python/p_context.i
| * svga: adapt to clear interface changesRoland Scheidegger2010-05-293-4/+8
| | | | | | | | this should support separate stencil/depth clears just fine.
* | gallium: silence all debug_named_value related warningsJoakim Sindholt2010-06-031-15/+15
| |
* | svga: Add a winsys callback to get the svga_winsys_contextThomas Hellstrom2010-05-312-0/+8
|/ | | | | | | | | | The winsys may need to extract the svga_winsys_context from a pipe_context. Add a function to enable that functionality. Cherry-picked from commit e8a8c5e339dfd7a36bb6435fd34175482b9187b8 Signed-off-by: Thomas Hellstrom <[email protected]> Signed-off-by: Jakob Bornecrantz <[email protected]>
* Merge branch 'gallium-msaa'Roland Scheidegger2010-05-213-19/+49
|\ | | | | | | | | | | Conflicts: src/mesa/state_tracker/st_gen_mipmap.c src/mesa/state_tracker/st_texture.c
| * gallium: implement set_sample_mask() in all driversRoland Scheidegger2010-05-181-0/+7
| | | | | | | | | | | | | | | | prevents segfault when state trackers try to set default mask. Other option would be to make this required only for drivers supporting multisampling, but this seems more clean. Only dummy implementations (for normal drivers) provided (no driver supports multisampling yet neither).
| * svga: adapt to interface changesRoland Scheidegger2010-05-172-19/+42
| | | | | | | | | | might need further cleanup. Using surfaces internally just to be able to use the existing code might cause unnecessary copies afaict.
* | Merge branch 'gallium-front-ccw'Keith Whitwell2010-05-215-42/+42
|\ \
| * | gallium: more work on ccw flag removalKeith Whitwell2010-05-141-6/+6
| | | | | | | | | | | | The linux-debug target builds...
| * | gallium: convert rasterizer state to use gl-style front/back conceptsKeith Whitwell2010-05-145-36/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use front/back instead of cw/ccw throughout. Also, use offset_point/line/fill instead of offset_cw/ccw. Brings gallium representation of this state into line with its main user, and also what turns out to be the most common hardware representation. This fixes a long-standing bias in the interface towards the architecture of the software rasterizer.
* | | gallium: EXT_timer_query support.Mathias Fröhlich2010-05-171-0/+2
| | | | | | | | | | | | Signed-off-by: Corbin Simpson <[email protected]>
* | | gallium: remove forward declarations of non-existent objectsMarek Olšák2010-05-141-1/+0
|/ /
* | svga: Advertise shader limits.José Fonseca2010-05-121-0/+51
| |
* | gallium: Make PIPE_CAP_xxx enums.José Fonseca2010-05-121-2/+2
| |
* | svga: Fill in is_resource_referenced callback.José Fonseca2010-05-101-0/+1
| |
* | gallium: rename draw() to draw_elements() in vbuf codeBrian Paul2010-05-051-4/+4
| | | | | | | | | | Now we have draw_elements() and draw_arrays() to be consistent with the pipe_context drawing functions.
* | svga: Remove unnecessary header.Vinson Lee2010-05-041-1/+0
|/
* svga: Silent warning.José Fonseca2010-05-031-1/+1
|
* svga: Remove the screen private context.José Fonseca2010-05-0311-106/+63
| | | | | | All affected operations have already been moved to context. More cleanup work can be done, in particular with the buffer transfers.
* svga: Remove empty file.José Fonseca2010-05-031-2/+0
|
* svga: Update flags documentation.José Fonseca2010-05-031-8/+5
|
* svga: Include svga_surface.h in svga_screen.c.Vinson Lee2010-05-021-0/+1
| | | | Fixes svga_screen_init_surface_functions implicit declaration warning.
* svga: Fix index offsetJakob Bornecrantz2010-04-211-2/+3
|
* svga: Init surface functionsJakob Bornecrantz2010-04-201-0/+1
|
* svga: More don't recurseJakob Bornecrantz2010-04-191-1/+1
|
* svga: Don't recurseJakob Bornecrantz2010-04-191-1/+1
|
* svga: Drop BGNFOR, ENDFOR, REP, and ENDREP opcodes.José Fonseca2010-04-271-3/+0
|
* svga: Pass-through max_index to translate.José Fonseca2010-04-261-1/+1
|
* svga: D3DCOLOR actually stands for B8G8R8A8.José Fonseca2010-04-241-1/+1
|
* svga: Translate recently added vertex formats.José Fonseca2010-04-241-6/+2
|
* gallium: replace pipe_resource::_usage with pipe_resource::usageBrian Paul2010-04-201-1/+1
|
* Merge branch 'gallium-index-bias'José Fonseca2010-04-207-23/+32
|\
| * svga: Implement index bias.José Fonseca2010-04-197-23/+32
| | | | | | | | Untested.
* | Merge branch '7.8'Brian Paul2010-04-193-3/+5
|\ \ | |/ |/| | | | | | | | | | | Conflicts: src/gallium/auxiliary/draw/draw_context.c src/gallium/auxiliary/draw/draw_pipe_aaline.c src/gallium/drivers/llvmpipe/lp_context.c