summaryrefslogtreecommitdiff
path: root/src/mesa/state_tracker/st_cb_drawpixels.c
AgeCommit message (Collapse)Author
2008-04-21use cso fs/vs handle functionsKeith Whitwell
2008-04-21gallium: Use CSO cache for shaders.Michel Dänzer
2008-04-18gallium: get rid of unnecessary surface mappingBrian Paul
2008-04-16gallium: implement RGBA pixel maps in the pixel transfer fragment programBrian Paul
2008-04-09gallium: more elaborate tracking of front color buffer stateBrian Paul
This fixes the case where the app calls SwapBuffers then calls glReadPixels to read the front color buffer. We now keep track of when the front buffer is a _logically_ copy of the back buffer (after SwapBuffers) and read from the back color buffer instead of the front.
2008-04-09gallium: remove unneeded st->haveFramebufferSurfaces field.Brian Paul
2008-04-04gallium: make sure to set the SamplersUsed field for bitmap/drawpixels shadersBrian Paul
Also, make sure that field is copied/updated in the program clone and combine functions. Without this we weren't getting SAMP declarations in the TGSI shaders.
2008-04-03gallium: set gl_rasterization_rulesBrian Paul
2008-03-31gallium: use cso_save/restore_sampler_textures() functionsBrian
2008-03-26gallium: Change pipe->flush() interface to optionally return a fence.Michel Dänzer
The cell driver still uses an internal CELL_FLUSH_WAIT flag, in the long run proper fencing should be implemented for it.
2008-03-25gallium: added some debug code (disable)Brian Paul
2008-03-24gallium: save/restore samplers in draw_textured_quad()Brian
2008-03-21Refactor PBO validate/map code.Brian
We always need to do PBO validation, so do that in core Mesa before calling driv er routine. cherry-picked from Mesa/master.
2008-03-21gallium: implement PBO operations for glDraw/ReadPixels and glBitmapBrian Paul
At this time there are no optimizations for directly blitting between buffer objects and surfaces (always go through mappings). glean pbo test passes now
2008-03-20gallium: glBitmap code now separe from glDraw/CopyPixels codeBrian
Also, glBitmap now re-uses the vertex buffer to avoid frequent allocations/ deallocations. And, use u_simple_shaders utility code.
2008-03-19gallium: add face, dirtyLevels params to pipe->texture_update()Brian Paul
This provides better information about which images in texture object have changed. Also, call texture_update() from more places previously missed.
2008-03-19gallium: implement CSO save/restore functions for use by meta operations ↵Brian
(blit, gen-mipmaps, quad-clear, etc) Also, additional cso_set_*() functions for viewport, framebuffer, blend color, etc. state.
2008-03-11gallium: rework CSO-related code in state trackerBrian
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...
2008-03-05gallium: michel's patch to rework texture/sampler binding interfaceKeith Whitwell
Bind all the samplers/textures at once rather than piecemeal. This is easier for drivers to understand.
2008-02-29gallium: change st->state.sampler_texture[] to store pipe_texture pointersBrian Paul
This is a better fix for the previous check-in. Fixes texadd.c conform test, and probably other bugs.
2008-02-29gallium: fix glCopyPixels(GL_DEPTH) when Z format conversion is neededBrian Paul
2008-02-28gallium: fix surface/texture format conversion in st_CopyPixelsBrian Paul
If the src buffer's format isn't supported as a texture format, find a different texture format.
2008-02-28galliums: s/uint/enum pipe_format/Brian Paul
2008-02-27gallium: remove pipe_context->texture_create/release/get_tex_surface()Brian
These functions are now per-screen, not per-context.
2008-02-27gallium: move is_format_supported() to pipe_screen structBrian
2008-02-27gallium: start removing pipe_context->get_name/vendor/param/paramfBrian
These are now per-screen functions, not per-context. State tracker updated, code in drivers and p_context.h disabled.
2008-02-26gallium: use pipe_texture_reference() instead of pipe->texture_release()Brian
2008-02-20gallium: state tracker didn't always notify drivers of texobj data changesBrian
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.
2008-02-15Code reorganization: update build.José Fonseca
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.
2008-02-13gallium: pipe->surface_copy can flip the contents vertically when necessary.Michel Dänzer
Fixes gears being upside down on the box in demos/gearbox.
2008-02-12gallium: rename st_fragment_program's fs field to cso to match st_vertex_programBrian
2008-02-12gallium: remove unused first_level param from st_texture_create()Brian
2008-02-08gallium: added inClipCoords param to st_draw_vertices() to indicate coord ↵Brian
system of vertices Also, export st_make_passthrough_vertex_shader() from st_cb_drawpixels.c
2008-02-06gallium: add bitmap/drawpixels texcoord bias supportBrian
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.
2008-01-23gallium: remove support for separate depth/stencil buffers. Always combined ↵Brian
now.
2008-01-16tweaks to quad drawing, set UsesKill in bitmap shaderBrian
2008-01-14Fix problems with vertex shaders and the private draw module.Brian
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.
2008-01-14Remove pipe->get/put_tile_rgba.Michel Dänzer
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.
2008-01-14Remove mapping fields from struct pipe_surface.Michel Dänzer
It's now the responsibility of surface users to keep track of their mappings.
2007-12-20gallium: make state tracker explictly ask for rendercache flushesKeith Whitwell
2007-12-17gallium: incorporate alpha state into depth_stencil state object.Keith Whitwell
2007-12-11Remove internal_format field from struct pipe_texture.Michel Dänzer
It's state tracker specific / not really necessary anyway.
2007-12-11gallium: remove set_sampler_units interfaceKeith Whitwell
The effect of this mapping can be acheived by the state tracker and setting up the pipe texture state pointers to incorporate its affects.
2007-12-10Add 'type' parameter to is_format_supported() to specify texture vs. drawing ↵Brian
surface, etc. Additional types may be added in the future.
2007-12-07Define PIPE_FORMAT_ tokens as an enum set, rather than #defines.Brian
This makes debugging a _lot_ easier. In gdb, "print format" used to display 613570600, now you see PIPE_FORMAT_A8R8G8B8_UNORM.
2007-12-07Replace "duplicate" formatsBrian
2007-12-07Eliminate struct pipe_region.Michel Dänzer
Directly use struct pipe_buffer_handle for storage and struct pipe_surface for (un)mapping.
2007-12-06Hide texture layout details from the state tracker.Michel Dänzer
pipe->get_tex_surface() has to be used for access to texture image data.
2007-11-29Move dimensions from struct pipe_region to struct pipe_surface.Michel Dänzer
2007-11-06Remove pipe->max_texture_size(), use get_param() instead.Brian
Also, in st_init_limits(), clamp driver's values against Mesa's internal limits.