José Fonseca [Fri, 11 Feb 2011 11:22:02 +0000 (11:22 +0000)]
svga: Enable the draw pipeline for smooth lines.
Spotted by Brian Paul.
José Fonseca [Fri, 11 Feb 2011 11:20:54 +0000 (11:20 +0000)]
svga: Don't use the draw pipeline for non-AA lines with a fractional width.
Spotted by Jakob Bornecrantz.
José Fonseca [Fri, 11 Feb 2011 11:14:27 +0000 (11:14 +0000)]
draw: Don't use the pipeline when drawing lines with fractional widths.
Spotted by Jakob Bornecrantz.
José Fonseca [Fri, 11 Feb 2011 11:14:44 +0000 (11:14 +0000)]
llvmpipe: Use u_math's round.
José Fonseca [Fri, 11 Feb 2011 11:11:33 +0000 (11:11 +0000)]
util: Define round and roundf on MSVC.
José Fonseca [Fri, 11 Feb 2011 07:47:34 +0000 (07:47 +0000)]
svga: Stippled lines can also be drawn with triangles.
Marek Olšák [Fri, 11 Feb 2011 04:59:02 +0000 (05:59 +0100)]
r300g: remove unused function prototypes, update copyright
Haitao Feng [Wed, 9 Feb 2011 07:05:11 +0000 (15:05 +0800)]
egl_dri2: rename loader_extension to dri2_loader_extension
Signed-off-by: Haitao Feng <haitao.feng@intel.com>
Benjamin Franzke [Fri, 11 Feb 2011 01:23:38 +0000 (02:23 +0100)]
st/egl wayland: Sync front buffer release
Benjamin Franzke [Fri, 11 Feb 2011 01:23:14 +0000 (02:23 +0100)]
egl_dri2 wayland: Sync front buffer release
Benjamin Franzke [Wed, 9 Feb 2011 20:19:45 +0000 (21:19 +0100)]
egl_dri2: Always unbind old contexts
This fixes __DRIdrawable refcounting.
Binding a context increases their refcount,
so we need to decrease it.
Benjamin Franzke [Wed, 9 Feb 2011 14:30:20 +0000 (15:30 +0100)]
egl_dri2: Use double buffering for window surfaces
Benjamin Franzke [Wed, 9 Feb 2011 14:26:26 +0000 (15:26 +0100)]
st/dri: Set render_buffer in dri_fill_st_visual
st/mesa/st_managaer.c needs render_buffer in order
to determinde which buffer should be rendered to.
Benjamin Franzke [Wed, 9 Feb 2011 19:48:38 +0000 (20:48 +0100)]
st/dri: img_from_renderbuf: Fix incorrect usage of dri_context()
Benjamin Franzke [Wed, 9 Feb 2011 19:42:50 +0000 (20:42 +0100)]
st/dri: Fix surfaceless gl using contexts with previous bound surfaces
ctx->dPriv might be != NULL then draw which is NULL is accessed:
struct dri_drawable *draw = dri_drawable(driDrawPriv);
[..]
if (ctx->dPriv != driDrawPriv) {
ctx->dPriv = driDrawPriv;
draw->texture_stamp = driDrawPriv->lastStamp - 1;
}
Benjamin Franzke [Wed, 9 Feb 2011 19:40:37 +0000 (20:40 +0100)]
st/egl wayland: Set color_format according to wl_visual
Dave Airlie [Fri, 11 Feb 2011 01:47:43 +0000 (11:47 +1000)]
r600g: get correct height alignment
useful for s3tc
Dave Airlie [Fri, 11 Feb 2011 00:45:59 +0000 (10:45 +1000)]
r600g: drop two unused | 0 that are actually in word4 anyways.
these were NOPs anyways.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Dave Airlie [Thu, 10 Feb 2011 04:07:06 +0000 (14:07 +1000)]
r600g: handle 16/32 u/s norm formats properly
add support for the 32-bit types, also fixup the
export setting to handle types with channels > 11 bits properly
Signed-off-by: Dave Airlie <airlied@redhat.com>
Marek Olšák [Fri, 11 Feb 2011 02:17:04 +0000 (03:17 +0100)]
r300g: prevent NULL pointer dereference in r300_buffer_create
Should fix:
https://bugs.freedesktop.org/show_bug.cgi?id=33185
Kenneth Graunke [Fri, 11 Feb 2011 01:35:36 +0000 (17:35 -0800)]
mesa: Remove empty header file s_trispan.h.
Kenneth Graunke [Fri, 11 Feb 2011 00:37:56 +0000 (16:37 -0800)]
glsl/Makefile: glcpp doesn't need libglsl.a.
Also, add a 'glcpp' target so you can type 'make glcpp' instead of
'make glcpp/glcpp'.
Marek Olšák [Fri, 11 Feb 2011 01:34:15 +0000 (02:34 +0100)]
r300g: plug a memory leak in winsys
Marek Olšák [Fri, 11 Feb 2011 00:32:44 +0000 (01:32 +0100)]
r300g: remove unneeded code in winsys
We don't need the read/write flags.
Marek Olšák [Fri, 11 Feb 2011 00:18:53 +0000 (01:18 +0100)]
r300g: fix warning
Marek Olšák [Fri, 11 Feb 2011 00:16:06 +0000 (01:16 +0100)]
configure.ac: remove libdrm_radeon dependency for r300g and r600g
Marek Olšák [Thu, 23 Dec 2010 09:40:54 +0000 (19:40 +1000)]
r300g: import the last bits of libdrm and cleanup the whole thing
Based on Dave's branch.
The majority of this commit is a cleanup, mainly renaming things.
There wasn't much code to import, just ioctl calls.
Also done:
- implemented unsynchronized bo_map (important optimization!)
- radeon_bo_is_referenced_by_cs is no longer a refcount hack
- dropped the libdrm_radeon dependency
I'm surprised that this has resulted in less code in the end.
Marek Olšák [Thu, 10 Feb 2011 01:16:58 +0000 (02:16 +0100)]
st/mesa: allow rendering to sRGB textures if EXT_fb_srgb is unsupported
In this case, we always use the corresponding linear format in create_surface,
therefore we should check for linear format support as well.
Ian Romanick [Thu, 10 Feb 2011 19:51:28 +0000 (11:51 -0800)]
i915: Force lowering of all types of indirect array accesses in the FS
NOTE: This is a candidate for the 7.9 and 7.10 branches.
Ian Romanick [Thu, 10 Feb 2011 19:48:59 +0000 (11:48 -0800)]
i915: Calculate partial result to temp register first
Previously the SNE and SEQ instructions would calculate the partial
result to the destination register. This would cause problems if the
destination register was also one of the source registers.
Fixes piglit tests glsl-fs-any, glsl-fs-struct-equal,
glsl-fs-struct-notequal, glsl-fs-vec4-operator-equal,
glsl-fs-vec4-operator-notequal.
NOTE: This is a candidate for the 7.9 and 7.10 branches.
José Fonseca [Thu, 10 Feb 2011 20:53:55 +0000 (20:53 +0000)]
u_upload_mgr: Use PIPE_TRANSFER_FLUSH_EXPLICIT.
This can avoid DMAing the whole buffer when just a fraction was changed.
José Fonseca [Thu, 10 Feb 2011 12:16:26 +0000 (12:16 +0000)]
scons: Disable -mstackrealign on MinGW again.
It's still broken, however it doesn't show up on debug builds.
Kristian Høgsberg [Thu, 10 Feb 2011 15:45:06 +0000 (10:45 -0500)]
configure.ac: Fix typo
Marek Olšák [Thu, 10 Feb 2011 10:20:05 +0000 (11:20 +0100)]
r300g: implement accelerated copy_region for compressed formats
Marek Olšák [Thu, 10 Feb 2011 09:16:21 +0000 (10:16 +0100)]
r300g: add a way to change texture properties arbitrarily
So that we can implement resource_copy on arbitrary data.
Marek Olšák [Thu, 10 Feb 2011 04:36:44 +0000 (05:36 +0100)]
r300g: consolidate buffers and textures to r300_resource
Transfers and create/destroy are still handled separately.
Marek Olšák [Thu, 10 Feb 2011 05:10:55 +0000 (06:10 +0100)]
r300g: simplify WRITE_RELOC API and cleanup
Marek Olšák [Thu, 10 Feb 2011 10:21:27 +0000 (11:21 +0100)]
u_blitter: let the driver check whether there's a recursion
Marek Olšák [Thu, 10 Feb 2011 01:11:38 +0000 (02:11 +0100)]
r300g: use format from pipe_surface instead of pipe_resource
Marek Olšák [Thu, 10 Feb 2011 00:36:23 +0000 (01:36 +0100)]
Revert "r300g: support sRGB colorbuffers"
This partially reverts commit
91eba2567eab9409d94efc3c1f07a4a3731d0047.
Conflicts:
src/gallium/drivers/r300/r300_blit.c
Dave Airlie [Sun, 6 Feb 2011 09:01:58 +0000 (19:01 +1000)]
mesa/st: enable GL_EXT_framebuffer_sRGB
If the formats don't match we need to update the surface with the new
format.
if we can render to SRGB formats, enable the extension
Signed-off-by: Dave Airlie <airlied@redhat.com>
José Fonseca [Tue, 8 Feb 2011 10:26:17 +0000 (10:26 +0000)]
scons: Restrict whole program optimization to release builds.
It just takes forever, so it is inadequate for continuous testings
(i.e., checked and profile build types).
José Fonseca [Wed, 1 Dec 2010 15:41:12 +0000 (15:41 +0000)]
svga: Don't advertise pixel shader addr register support.
It's not fully supported.
Kristian Høgsberg [Wed, 9 Feb 2011 15:18:07 +0000 (10:18 -0500)]
eglplatform.h: Define Wayland native platform types
This is conditional on WL_EGL_PLATFORM being #defined, so application
must make sure to include wayland-egl.h before including any egl header.
Christoph Bumiller [Wed, 9 Feb 2011 14:01:23 +0000 (15:01 +0100)]
nvc0: serialize on PIPE_FLUSH_RENDER_CACHE as well
Effects were easily visible in piglit/fbo-generatemipmap-formats.
Christoph Bumiller [Wed, 2 Feb 2011 21:04:53 +0000 (22:04 +0100)]
nvc0: fix stride of NVC0_3D_RT methods
Christoph Bumiller [Wed, 2 Feb 2011 15:35:21 +0000 (16:35 +0100)]
nvc0: correct storage type for 16 bit surface formats
Christoph Bumiller [Wed, 9 Feb 2011 13:26:14 +0000 (14:26 +0100)]
nvc0: make CSE work for ops with multiple results
Christoph Bumiller [Tue, 8 Feb 2011 15:55:06 +0000 (16:55 +0100)]
nvc0: replace branching with predicated insns where feasible
Christoph Bumiller [Mon, 7 Feb 2011 20:19:23 +0000 (21:19 +0100)]
nvc0: implement local memory load and store ops
Christoph Bumiller [Mon, 7 Feb 2011 20:17:37 +0000 (21:17 +0100)]
nvc0: make sure phi-ops really have one source per in-block
Christoph Bumiller [Mon, 7 Feb 2011 13:54:17 +0000 (14:54 +0100)]
nv50,nvc0: do not forget to apply sign mode to saved TGSI inputs
Christoph Bumiller [Sun, 6 Feb 2011 12:09:24 +0000 (13:09 +0100)]
nvc0: do not generate a backwards jump if a loop ends with BRK
Christoph Bumiller [Mon, 7 Feb 2011 18:05:55 +0000 (19:05 +0100)]
nvc0: store only one value per basic block for TGSI regs
Christoph Bumiller [Mon, 7 Feb 2011 18:03:09 +0000 (19:03 +0100)]
nv50,nvc0: fix condition code change when commuting SET sources
Christoph Bumiller [Mon, 7 Feb 2011 18:01:54 +0000 (19:01 +0100)]
nvc0: set basic block on manual instruction insertion
Christoph Bumiller [Mon, 7 Feb 2011 17:59:46 +0000 (18:59 +0100)]
nvc0: try to fix register conflicts for vector instructions
Vector here means using multiple 32 bit regs which are forced to be
consecutive in the register file.
This still isn't quite nice.
Christoph Bumiller [Wed, 2 Feb 2011 20:38:07 +0000 (21:38 +0100)]
nvc0: reset texture base address after read transfer
Christoph Bumiller [Wed, 2 Feb 2011 20:23:09 +0000 (21:23 +0100)]
nvc0: don't combine memory loads across block boundaries
Christoph Bumiller [Tue, 1 Feb 2011 19:52:49 +0000 (20:52 +0100)]
nvc0: detect no-op MIN/MAX, do CSE earlier to succeed more often
Thomas Hellstrom [Tue, 8 Feb 2011 10:36:56 +0000 (11:36 +0100)]
mesa/st: Clean up vertex buffer unreferencing
Avoid accessing draw module internal structures outside of the draw module.
Unreference vertex buffers in error path.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Marek Olšák [Wed, 9 Feb 2011 04:20:37 +0000 (05:20 +0100)]
gallium/docs: fix typo
Brian Paul [Wed, 9 Feb 2011 02:25:04 +0000 (19:25 -0700)]
r200: add cast to silence warning
Brian Paul [Wed, 9 Feb 2011 02:25:04 +0000 (19:25 -0700)]
mesa: remove unused BITFIELD64 macros
Brian Paul [Wed, 9 Feb 2011 02:25:04 +0000 (19:25 -0700)]
mesa: remove _mesa_create_context_for_api()
Just add the gl_api parameter to _mesa_create_context().
Brian Paul [Wed, 9 Feb 2011 02:25:04 +0000 (19:25 -0700)]
mesa: remove _mesa_initialize_context_for_api()
Just add the gl_api parameter to _mesa_initialize_context().
Brian Paul [Wed, 9 Feb 2011 02:19:34 +0000 (19:19 -0700)]
mesa: add/update VERBOSE_API logging
Brian Paul [Wed, 9 Feb 2011 01:21:50 +0000 (18:21 -0700)]
st/mesa: fix shader deletion regression
Fixes a regression from commit
5cbff0932e498f49b57cbb71037b93416bfe30e0.
The problem is *some* glDrawPixels fragment programs need to be deleted,
but not all. Use an explicit flag to indicate whether or not the program
needs to be deleted.
This should fix http://bugs.freedesktop.org/show_bug.cgi?id=34049
Kenneth Graunke [Wed, 9 Feb 2011 00:56:07 +0000 (16:56 -0800)]
i965: Add missing DEFINE_BITS for brw dirty bits.
These are only used for debugging, but should be there.
Found by inspection.
Kenneth Graunke [Wed, 9 Feb 2011 00:55:20 +0000 (16:55 -0800)]
i965: Separate the BRW_NEW_(VS|WM)_CONSTBUF dirty bits.
These were incorrectly defined to the same value - likely due to a cut
and paste error. Found by inspection.
Kenneth Graunke [Wed, 9 Feb 2011 00:04:48 +0000 (16:04 -0800)]
i965: Rename a few more commands to match the documentation.
Benjamin Franzke [Tue, 8 Feb 2011 20:12:43 +0000 (21:12 +0100)]
st/egl: Fix platform selection
A break for case _EGL_PLATFORM_X11 is missing.
introduced by:
381ea0d67a6d84a34d23571c49bbf4339ffda364
Eric Anholt [Sat, 5 Feb 2011 17:59:21 +0000 (11:59 -0600)]
i965: Remove pointless keying of WM state on VUE size.
Eric Anholt [Fri, 4 Feb 2011 19:31:02 +0000 (13:31 -0600)]
mesa: Fix the Mesa IR copy propagation to not read past writes to the reg.
Fixes glsl-vs-post-increment-01.
Reviewed-by: José Fonseca <jfonseca@vmware.com>
Eric Anholt [Tue, 8 Feb 2011 07:27:03 +0000 (23:27 -0800)]
glsl: Disable the new copy propagation pass until it gets fixed.
It apparently regressed a bunch of ES2 cases.
Chad Versace [Fri, 4 Feb 2011 20:18:56 +0000 (12:18 -0800)]
glsl: Set operators '%' and '%=' to be reserved when GLSL < 1.30
From section 5.9 of the GLSL 1.20 spec:
The operator modulus (%) is reserved for future use.
From section 5.8 of the GLSL 1.20 spec:
The assignments modulus into (%=), left shift by (<<=), right shift by
(>>=), inclusive or into ( |=), and exclusive or into ( ^=). These
operators are reserved for future use.
The GLSL ES 1.00 spec and GLSL 1.10 spec have similiar language.
Fixes bug:
https://bugs.freedesktop.org//show_bug.cgi?id=33916
Fixes Piglit tests:
spec/glsl-1.00/compiler/arithmetic-operators/modulus-00.frag
spec/glsl-1.00/compiler/assignment-operators/modulus-assign-00.frag
spec/glsl-1.10/compiler/arithmetic-operators/modulus-00.frag
spec/glsl-1.10/compiler/assignment-operators/modulus-assign-00.frag
spec/glsl-1.20/compiler/arithmetic-operators/modulus-00.frag
spec/glsl-1.20/compiler/assignment-operators/modulus-assign-00.frag
Marek Olšák [Tue, 8 Feb 2011 17:18:13 +0000 (18:18 +0100)]
r600g: fixup assertion
Marek Olšák [Tue, 8 Feb 2011 16:36:48 +0000 (17:36 +0100)]
r600g: add a faster implementation of transfer_inline_write
u_default_transfer_inline_write uses util_copy_rect, which is kinda slow.
Marek Olšák [Tue, 8 Feb 2011 16:30:39 +0000 (17:30 +0100)]
r600g: slab-allocate buffer and transfer structures
Marek Olšák [Tue, 8 Feb 2011 15:34:22 +0000 (16:34 +0100)]
r300g: use the same upload buffer for vertices and indices
Marek Olšák [Tue, 8 Feb 2011 14:21:35 +0000 (15:21 +0100)]
r600g: use the same upload buffer for vertices, indices, and constants
This should reduce memory consumption.
Thomas Hellstrom [Tue, 8 Feb 2011 09:14:22 +0000 (01:14 -0800)]
mesa/st: Plug a fragment program variant parameter leak
Fixes a minor memory leak with the "engine" mesa demo.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Signed-off-by: Brian Paul <brianp@vmware.com>
Brian Paul [Tue, 8 Feb 2011 15:05:14 +0000 (08:05 -0700)]
st/mesa: free the temporary bitmap/drawpix shader code
Fixes a per-shader memory leak when drawing glBitmaps, glDrawPixels
or glCopyPixels.
NOTE: This is a candidate for the 7.9 and 7.10 branches.
Marek Olšák [Tue, 8 Feb 2011 14:20:11 +0000 (15:20 +0100)]
u_vbuf_mgr: add a way to specify the BIND flag for the upload buffer
Marek Olšák [Tue, 8 Feb 2011 14:18:10 +0000 (15:18 +0100)]
u_vbuf_mgr: remove tabs
Marek Olšák [Tue, 8 Feb 2011 14:08:04 +0000 (15:08 +0100)]
u_vbuf_mgr: make the uploader public
Marek Olšák [Tue, 8 Feb 2011 11:09:29 +0000 (12:09 +0100)]
Revert "r600g: do not flush the uploader" (with comments)
This reverts commit
1c2a4f0820ff2272f993e6da28dcf8bcbbc3252a.
Brian Paterni [Tue, 8 Feb 2011 01:57:56 +0000 (19:57 -0600)]
r600g: silence a few valgrind warnings
Thomas Hellstrom [Mon, 7 Feb 2011 14:37:05 +0000 (15:37 +0100)]
mesa/st: Fix vertex buffer leak
Make sure we unreference the vertex buffer pointers in a local array.
This fixes huge vertex buffer / memory leaks in mesa demos "fire" and "engine".
NOTE: This is a candidate for the 7.9 and 7.10 branches.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Kristian Høgsberg [Tue, 8 Feb 2011 01:49:58 +0000 (20:49 -0500)]
wayland-egl: Add struct wl_egl_display argument to +wl_egl_window_create()
Henri Verbeet [Mon, 7 Feb 2011 14:22:08 +0000 (15:22 +0100)]
r600g: Add support for relative addressing on constant buffers.
Relative addressing of constant buffers can't work properly through the
kcache, since you can only address within the currently locked kcache window.
Instead, this patch binds the constant buffer as a shader resource, and then
explicitly fetches the constant using a vertex fetch with fetch type
VTX_FETCH_NO_INDEX_OFFSET from the shader. There's probably still some room
for improvement, doing the fetch right before the instruction that needs the
value may not be quite optimal for example.
Henri Verbeet [Mon, 7 Feb 2011 14:22:08 +0000 (15:22 +0100)]
r600g: Set the fetch type in r600_bc_vtx_build().
Henri Verbeet [Mon, 7 Feb 2011 14:22:07 +0000 (15:22 +0100)]
r600g: Handle the ADD_INT instruction in r600_bc_get_num_operands().
Henri Verbeet [Mon, 7 Feb 2011 14:22:07 +0000 (15:22 +0100)]
r600g: Generalize the pipe_add_vertex_attrib() functions.
This allows them to be used for VS or PS buffer resources as well.
Henri Verbeet [Mon, 7 Feb 2011 14:22:07 +0000 (15:22 +0100)]
r600g: Remove vs_resource and ps_resource from the pipe context.
These are practically unused, only the vs_resource array is being abused for
fetch shader resources.
Henri Verbeet [Mon, 7 Feb 2011 14:22:07 +0000 (15:22 +0100)]
r600g: Split constants in r600_shader_from_tgsi().
Henri Verbeet [Mon, 7 Feb 2011 14:22:07 +0000 (15:22 +0100)]
r600g: Do the tgsi_full_src_register to r600_shader_src conversion in r600_shader_from_tgsi().
Henri Verbeet [Mon, 7 Feb 2011 14:22:07 +0000 (15:22 +0100)]
r600g: Split r600_bc_alu_src.
The r600_bc_alu_src structure is used in two different ways, as a vector and
for the individual channels of that same vector. This is somewhat fragile,
and probably confusing.
Henri Verbeet [Mon, 7 Feb 2011 14:22:07 +0000 (15:22 +0100)]
r600g: Store literal values in the r600_bc_alu_src structure.
This is much easier to work with, and allows use to get rid of some of the
literal handling hacks.
Henri Verbeet [Mon, 7 Feb 2011 14:22:07 +0000 (15:22 +0100)]
r600g: tgsi_dst() can't fail.