aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/state_tracker/st_cb_drawpixels.c
Commit message (Collapse)AuthorAgeFilesLines
* gallium: save/restore samplers in draw_textured_quad()Brian2008-03-241-3/+2
|
* Refactor PBO validate/map code.Brian2008-03-211-3/+1
| | | | | | We always need to do PBO validation, so do that in core Mesa before calling driv er routine. cherry-picked from Mesa/master.
* gallium: implement PBO operations for glDraw/ReadPixels and glBitmapBrian Paul2008-03-211-9/+13
| | | | | | At this time there are no optimizations for directly blitting between buffer objects and surfaces (always go through mappings). glean pbo test passes now
* gallium: glBitmap code now separe from glDraw/CopyPixels codeBrian2008-03-201-288/+7
| | | | | Also, glBitmap now re-uses the vertex buffer to avoid frequent allocations/ deallocations. And, use u_simple_shaders utility code.
* gallium: add face, dirtyLevels params to pipe->texture_update()Brian Paul2008-03-191-0/+3
| | | | | This provides better information about which images in texture object have changed. Also, call texture_update() from more places previously missed.
* gallium: implement CSO save/restore functions for use by meta operations ↵Brian2008-03-191-15/+10
| | | | | | | (blit, gen-mipmaps, quad-clear, etc) Also, additional cso_set_*() functions for viewport, framebuffer, blend color, etc. state.
* gallium: rework CSO-related code in state trackerBrian2008-03-111-28/+36
| | | | | | | | | | Use the code in cso_context.c rather than st_cache.c. Basically, binding of state objects now goes through the CSO module. But Vertex/fragment shaders go through pipe->bind_fs/vs_state() since they're not cached by the CSO module at this time. Also, update softpipe driver to handle NULL state objects in various places. This happens during context destruction. May need to update other drivers...
* gallium: michel's patch to rework texture/sampler binding interfaceKeith Whitwell2008-03-051-5/+6
| | | | | Bind all the samplers/textures at once rather than piecemeal. This is easier for drivers to understand.
* gallium: change st->state.sampler_texture[] to store pipe_texture pointersBrian Paul2008-02-291-2/+1
| | | | | This is a better fix for the previous check-in. Fixes texadd.c conform test, and probably other bugs.
* gallium: fix glCopyPixels(GL_DEPTH) when Z format conversion is neededBrian Paul2008-02-291-1/+8
|
* gallium: fix surface/texture format conversion in st_CopyPixelsBrian Paul2008-02-281-5/+35
| | | | | If the src buffer's format isn't supported as a texture format, find a different texture format.
* galliums: s/uint/enum pipe_format/Brian Paul2008-02-281-1/+1
|
* gallium: remove pipe_context->texture_create/release/get_tex_surface()Brian2008-02-271-3/+5
| | | | These functions are now per-screen, not per-context.
* gallium: move is_format_supported() to pipe_screen structBrian2008-02-271-2/+3
|
* gallium: start removing pipe_context->get_name/vendor/param/paramfBrian2008-02-271-1/+1
| | | | | These are now per-screen functions, not per-context. State tracker updated, code in drivers and p_context.h disabled.
* gallium: use pipe_texture_reference() instead of pipe->texture_release()Brian2008-02-261-3/+3
|
* gallium: state tracker didn't always notify drivers of texobj data changesBrian2008-02-201-1/+2
| | | | | | | | Calling glTexSubImage() or glTexImage() to replace texture data didn't reliably cause pipe->set_sampler_texture() to get called so drivers didn't always get notified of new texture data. The st_texture_object->pt pointer doesn't always indicate changed data so added a dirtyData field.
* Code reorganization: update build.José Fonseca2008-02-151-1/+1
| | | | | | | | | Update the Makefiles and includes for the new paths. Note that there hasn't been no separation of the Makefiles yet, and make is jumping all over the place. That will be taken care shortly. But for now, make should work. It was tested with linux and linux-dri. Linux-cell and linux-llvm might require some minor tweaks.
* gallium: pipe->surface_copy can flip the contents vertically when necessary.Michel Dänzer2008-02-131-0/+1
| | | | Fixes gears being upside down on the box in demos/gearbox.
* gallium: rename st_fragment_program's fs field to cso to match st_vertex_programBrian2008-02-121-1/+1
|
* gallium: remove unused first_level param from st_texture_create()Brian2008-02-121-3/+3
|
* gallium: added inClipCoords param to st_draw_vertices() to indicate coord ↵Brian2008-02-081-9/+9
| | | | | | system of vertices Also, export st_make_passthrough_vertex_shader() from st_cb_drawpixels.c
* gallium: add bitmap/drawpixels texcoord bias supportBrian2008-02-061-2/+5
| | | | | | | The state tracker will call pipe->get_paramf(PIPE_CAP_BITMAP_TEXCOORD_BIAS) to get a bias factor for adjusting the texcoords used in bitmap/drawpixels. This allows us to compensate for small differences in rasterization from one device to another.
* gallium: remove support for separate depth/stencil buffers. Always combined ↵Brian2008-01-231-3/+3
| | | | now.
* tweaks to quad drawing, set UsesKill in bitmap shaderBrian2008-01-161-12/+15
|
* Fix problems with vertex shaders and the private draw module.Brian2008-01-141-2/+2
| | | | | | | | The CSO returned by pipe->create_vs_state() can't be passed to the private draw module. That was causing glRasterPos to blow up. Add a 'draw_shader' field to st_vertex_program for use with the private draw module. Change st_context->state.vs type from cso_vertex_shader to st_vertex_program.
* Remove pipe->get/put_tile_rgba.Michel Dänzer2008-01-141-2/+3
| | | | | | | pipe_get/put_tile_rgba() now use pipe->get/put_tile internally. Also simplify the <format>_get/put_tile_rgba() helper functions and clean up some inconsitencies in them.
* Remove mapping fields from struct pipe_surface.Michel Dänzer2008-01-141-6/+0
| | | | It's now the responsibility of surface users to keep track of their mappings.
* gallium: make state tracker explictly ask for rendercache flushesKeith Whitwell2007-12-201-2/+2
|
* gallium: incorporate alpha state into depth_stencil state object.Keith Whitwell2007-12-171-1/+1
|
* Remove internal_format field from struct pipe_texture.Michel Dänzer2007-12-111-9/+6
| | | | It's state tracker specific / not really necessary anyway.
* gallium: remove set_sampler_units interfaceKeith Whitwell2007-12-111-2/+2
| | | | | The effect of this mapping can be acheived by the state tracker and setting up the pipe texture state pointers to incorporate its affects.
* Add 'type' parameter to is_format_supported() to specify texture vs. drawing ↵Brian2007-12-101-2/+2
| | | | | | surface, etc. Additional types may be added in the future.
* Define PIPE_FORMAT_ tokens as an enum set, rather than #defines.Brian2007-12-071-2/+3
| | | | | This makes debugging a _lot_ easier. In gdb, "print format" used to display 613570600, now you see PIPE_FORMAT_A8R8G8B8_UNORM.
* Replace "duplicate" formatsBrian2007-12-071-11/+11
|
* Eliminate struct pipe_region.Michel Dänzer2007-12-071-26/+22
| | | | | Directly use struct pipe_buffer_handle for storage and struct pipe_surface for (un)mapping.
* Hide texture layout details from the state tracker.Michel Dänzer2007-12-061-150/+64
| | | | pipe->get_tex_surface() has to be used for access to texture image data.
* Move dimensions from struct pipe_region to struct pipe_surface.Michel Dänzer2007-11-291-28/+22
|
* Remove pipe->max_texture_size(), use get_param() instead.Brian2007-11-061-4/+4
| | | | Also, in st_init_limits(), clamp driver's values against Mesa's internal limits.
* Check if the user/texenvprogram is just a pass-through program and skip ↵Brian2007-11-041-4/+35
| | | | program concatenation.
* Implement shader concatenation for glBitmap.Brian2007-10-301-39/+75
|
* combine shaders for glCopyPixelsBrian2007-10-301-79/+64
|
* Use program serial numbers to avoid re-generating fragment programs for ↵Brian2007-10-301-17/+35
| | | | glDrawPixels.
* Before calling texformat->StoreImage() set _ImageTransferState=0 since we'll ↵Brian2007-10-301-2/+10
| | | | do pixel transfer in the fragment program.
* Disable debug code.Brian2007-10-301-2/+8
| | | | | | Basic code for PixelTranslfer ops and glDrawPixels works now. A pixel transfer program is generated and combined with the current fragment shader.
* checkpoint: combine pixel transfer and user shader for glDrawPixelsBrian2007-10-301-1/+33
|
* Make it compile under linux.Michal Krol2007-10-291-0/+1
| | | | | Move pipe_region/surface_reference functions to pipe/p_inlines.h. Remove #include "p_util.h" from pipe/p_context.h.
* Replace supported_formats with is_format_supported interface.Michal Krol2007-10-281-19/+14
| | | | | | | | | | | The old supported_formats interface returned a list of formats supported by a pipe/winsys implementation. This was reasonable when gallium had a fixed list of predefined format. Now things has changed and the definition of PIPE_FORMAT is more flexible. The new shiny is_format_supported interface gets PIPE_FORMAT as an argument and returns a boolean whether this particular format is supported.
* Move mesa_to_tgsi.[ch] to state_trackerBrian2007-10-271-1/+1
|
* Move region_alloc() and region_release() to pipe_winsys.Brian2007-10-251-3/+6
| | | | This allows regions to be allocated w/out a rendering context.