summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2010-12-02Merge remote branch 'origin/master' into gallium-array-texturesgallium-array-texturesRoland Scheidegger56-351/+1249
Conflicts: src/gallium/drivers/i915/i915_resource_texture.c src/gallium/drivers/i915/i915_state_emit.c src/gallium/drivers/i915/i915_surface.c
2010-12-02i965: add support for polygon mode on Sandybridge.Xiang, Haihao1-0/+42
This fixes some mesa demos such as fslight/engine in wireframe mode.
2010-12-02i915g: Make sure that new vbo gets updatedJakob Bornecrantz2-5/+10
Malloc likes to reuse old address as soon as possible this would cause the new vbo buffer to get the same address as the old. So make sure we set it to NULL when we allocate a new one. This fixes ipers which will fill up a couple of VBO buffers per frame. Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
2010-12-02i915g: Improve debug printing for texturesJakob Bornecrantz1-4/+21
Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
2010-12-02i915g: Fix closure of full batch buffersChris Wilson2-72/+30
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> [danvet: incorporate comments by Dr_Jakob] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Jakob Bornecrantz <wallbraker@gmail.com> Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
2010-12-02i915g: track TODO itemsDaniel Vetter1-0/+29
Just as a reminder for all things currently broken with i915g. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Jakob Bornecrantz <wallbraker@gmail.com> Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
2010-12-02i915g: assert(depth_surface->offset == 0)Daniel Vetter1-1/+2
Shouldn't happen and not supported, anyway. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Jakob Bornecrantz <wallbraker@gmail.com> Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
2010-12-02i915g: enable x-tiling for render targetsDaniel Vetter1-4/+0
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Jakob Bornecrantz <wallbraker@gmail.com> Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
2010-12-02i915g: switch rendering to mipmapped textures to (x,y) offsetsDaniel Vetter3-9/+29
Byte offsets simply don't work with tiled render targets when using tiling bits. Luckily we can cox the hw into doing the right thing with the DRAWING_RECT command by disabling the drawing rect offset for the depth buffer. Minor fixes by Jakob Bornecrantz. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Jakob Bornecrantz <wallbraker@gmail.com> Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
2010-12-02i915g: enable X-tiling for texturesDaniel Vetter3-0/+27
Tiling is rather fragile in general and results in pure blackness when unlucky. Hence add a new option to disable tiling. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Jakob Bornecrantz <wallbraker@gmail.com> Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
2010-12-02i915g: don't pot-align stride for tiled buffersDaniel Vetter1-2/+3
libdrm will do this for us, if it's required (i.e. if tiling is possible). Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Jakob Bornecrantz <wallbraker@gmail.com> Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
2010-12-02i915g: postpone mipmap/face offset calculationDaniel Vetter3-27/+43
libdrm-intel can refuse to tile buffers for various reasons. For potentially tiled buffers the stride is therefore only known after the iws->buffer_create_tiled call. Unconditionally rounding up to whatever tiling requires wastes space, so rework the code to not use tex->stride in the layout code. Luckily only the mimap/face offset calculation uses it which can easily be solved by storing an (x, y) coordinate pair. Furthermore this will be usefull later for properly supporting rendering into the different levels of tiled mipmap textures. v2: switch to nblocks(x|y): More in line with gallium and better suited for rendering into mipmap textures. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Jakob Bornecrantz <wallbraker@gmail.com> Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
2010-12-02i915g: implement unfenced relocs for textures using tiling bitsDaniel Vetter3-5/+20
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Jakob Bornecrantz <wallbraker@gmail.com> Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
2010-12-02i915g: implement unfenced color&depth buffer using tiling bitsDaniel Vetter2-8/+22
v2: Clarify tiling bit calculation as suggested by Chris Wilson. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Jakob Bornecrantz <wallbraker@gmail.com> Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
2010-12-02i915g: return tiling in iws->buffer_from_handleDaniel Vetter3-3/+9
This is needed to properly implement tiling flags. And the gem implemention fo buffer_from_handle already calls get_tiling, so it's for free. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Jakob Bornecrantz <wallbraker@gmail.com> Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
2010-12-02i915g: prepare winsys/batchbuffer for execbuf2Daniel Vetter8-27/+38
Wire up a fenced parameter, switch all relocations to _FENCED Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Jakob Bornecrantz <wallbraker@gmail.com> Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
2010-12-02i915g: switch to tiled allocations, kill set_fenceDaniel Vetter4-60/+2
This way relaxed fencing is handled by libdrm. And buffers _can't_ ever change their tiling. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Jakob Bornecrantz <wallbraker@gmail.com> Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
2010-12-02i915g: add winsys function to create tiled buffersDaniel Vetter4-14/+102
Different kernels have different restrictions for tiled buffers. Hence use the libdrm abstraction to calculate the necessary stride and height alignment requirements. Not yet used. v2: Incorporate review comments from Jakob Bornecrantz Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Jakob Bornecrantz <wallbraker@gmail.com> Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
2010-12-02i915g: drop alignment parameter from iws->buffer_createDaniel Vetter6-21/+7
It's unnecessary. The kernel gem ignores it totally and we can't run on the old userspace fake bo manager due to lack of dri2. Also drop the redundant name string from the sw winsys as suggested by Jakob Bornecrantz Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Jakob Bornecrantz <wallbraker@gmail.com> Signed-off-by: Jakob Bornecrantz <wallbraker@gmail.com>
2010-12-01glsl: Mark the array access for whole-array comparisons.Eric Anholt1-0/+14
By not doing so, the uniform contents of glsl-uniform-non-uniform-array-compare.shader_test was getting thrown out since nobody was recorded as dereferencing the array.
2010-12-01i965: Add support for loops in the VS.Eric Anholt1-25/+33
This follows the changes done for the FS alongside the EU emit code.
2010-12-01i965: Enable IF statements in the VS.Eric Anholt1-3/+0
While the actual IF instructions were fixed by Zhenyu, we were still flattening them to conditional moves.
2010-12-01i965: Add support for gen6 CONTINUE instruction emit.Eric Anholt3-4/+28
At this point, piglit tests for fragment shader loops are working.
2010-12-01i965: Add support for gen6 BREAK ISA emit.Eric Anholt4-10/+112
There are now two targets: the hop-to-end-of-block target, and the target for where to resume execution for active channels.
2010-12-01i965: Add support for gen6 DO/WHILE ISA emit.Eric Anholt2-30/+74
There's no more DO since there's no more mask stack, and WHILE has been shuffled like IF was.
2010-12-02Merge remote branch 'origin/master' into gallium-array-texturesRoland Scheidegger125-5161/+6281
Conflicts: src/gallium/state_trackers/vega/api_filters.c src/gallium/state_trackers/vega/api_images.c src/gallium/state_trackers/vega/mask.c src/gallium/state_trackers/vega/paint.c src/gallium/state_trackers/vega/renderer.c src/gallium/state_trackers/vega/st_inlines.h src/gallium/state_trackers/vega/vg_context.c src/gallium/state_trackers/vega/vg_manager.c
2010-12-01i965: Dump the WHILE jump distance on gen6.Eric Anholt1-1/+2
2010-12-01r300g: disable ARB_texture_swizzle if S3TC is enabled on r3xx-onlyMarek Olšák1-1/+2
r3xx cannot swizzle compressed textures. r4xx+ is unaffected. NOTE: This is a candidate for the 7.9 branch.
2010-12-01r300g: fix texture swizzling with compressed textures on r400-r500Marek Olšák7-13/+28
This fixes all S3TC piglit/texwrap tests. NOTE: This is a candidate for the 7.9 branch.
2010-12-01i915: Correctly generate unconditional KIL instructionsIan Romanick1-1/+5
Fixes piglit test glsl-fs-discard-03. NOTE: This is a candidate for the 7.9 branch.
2010-12-01i915: Request that POW instructions be loweredIan Romanick1-0/+1
2010-12-01glsl: Lower ir_binop_pow to a sequence of EXP2 and LOG2Ian Romanick4-4/+33
2010-12-01glsl: Use M_LOG2E constant instead of calling log2Ian Romanick2-3/+7
2010-12-01glsl: Add comments to lower_jumps (from the commit message).Kenneth Graunke1-0/+31
This is essentially Luca's commit message, but placed at the top of the file.
2010-12-01glsl: Remove "discard" support from lower_jumps.Kenneth Graunke1-11/+2
The new lower_discard and opt_discard_simplification passes should handle all the necessary transformations, so lower_jumps doesn't need to support it. Also, lower_jumps incorrectly handled conditional discards - it would unconditionally truncate all code after the discard. Rather than fixing the bug, simply remove the code. NOTE: This is a candidate for the 7.9 branch.
2010-12-01glsl: Add a lowering pass to move discards out of if-statements.Kenneth Graunke5-1/+204
This should allow lower_if_to_cond_assign to work in the presence of discards, fixing bug #31690 and likely #31983. NOTE: This is a candidate for the 7.9 branch.
2010-12-01glsl: Add an optimization pass to simplify discards.Kenneth Graunke5-0/+184
NOTE: This is a candidate for the 7.9 branch.
2010-12-01ir_to_mesa: Add support for conditional discards.Marek Olšák1-2/+7
NOTE: This is a candidate for the 7.9 branch. Signed-off-by: Marek Olšák <maraeo@gmail.com> Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
2010-12-01r600c: fix some opcodes on evergreenAlex Deucher1-8/+56
There were a few places where we were using the wrong opcodes on evergreen. arl still needs to be fixed on evergreen; see r600g for reference. NOTE: This is a candidate for the 7.9 branch. Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
2010-12-01r300/compiler: implement and lower OPCODE_CLAMPMarek Olšák4-1/+29
Needed for st/vega.
2010-12-01vega: Remove extraneous ;José Fonseca1-1/+1
2010-12-01scons: Move MSVS_VERSION option to common module.José Fonseca2-1/+1
2010-12-01svga: Silence debug printf.José Fonseca1-1/+0
2010-12-01st/vega: Avoid unnecessary constant bufer upload.Chia-I Wu1-30/+48
Remember the last uploaded data and avoid re-uploading.
2010-12-01st/vega: Initialize pipe states with renderer.Chia-I Wu3-26/+28
Initialize vertex elements, rasterizer, stencil ref, and vertex shader with renderer_create. Remove RASTERIZER_DIRTY and VS_DIRTY flags.
2010-12-01st/vega: Create drawing surface mask as needed.Chia-I Wu3-35/+38
As the blend texture, a drawing surface mask is used when masking is enabled. It should be created as needed. s/alpha_mask/surface_mask/ to follow OpenVG 1.1 naming.
2010-12-01st/vega: Delay blend texture creation until needed.Chia-I Wu4-57/+32
It is used for more advanced blending or mask update. It might not be ever needed for some applications.
2010-12-01st/vega: Remove st_inlines.h.Chia-I Wu5-127/+1
Per b0427bedde80e3189524651a327235bdfddbc613.
2010-12-01st/vega: Simplify radial gradient.Chia-I Wu1-73/+46
Eight less instructions with comments.
2010-12-01st/vega: Fix degenerate paints.Chia-I Wu6-9/+80
Fix the case that the two points of a linear gradient coincide, or the case that the radius of a radial gradient is equal to or less than 0.