summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* glsl: Use a separate div_to_mul_rcp lowering flag for integers.Bryan Cain2011-08-315-63/+80
| | | | | | | | | | | | | | Using multiply and reciprocal for integer division involves potentially lossy floating point conversions. This is okay for older GPUs that represent integers as floating point, but undesirable for GPUs with native integer division instructions. TGSI, for example, has UDIV/IDIV instructions for integer division, so it makes sense to handle this directly. Likewise for i965. Reviewed-by: Ian Romanick <[email protected]> Signed-off-by: Bryan Cain <[email protected]> Signed-off-by: Kenneth Graunke <[email protected]>
* mesa: bump max program local params, max uniforms limitBrian Paul2011-08-311-2/+2
| | | | | | Some driver support more than 1024. Reviewed-by: Ian Romanick <[email protected]>
* swrast: initialize program native limitsBrian Paul2011-08-311-0/+22
| | | | Reviewed-by: Ian Romanick <[email protected]>
* i965/vs: Avoid the emit(), remove(), insert_before() for array instructions.Eric Anholt2011-08-312-46/+56
| | | | | | | v2: Add generator instructions for the scratch opcodes. Add emit_before() for handling ->ir and ->annotation inheritance. Reviewed-by: Kenneth Graunke <[email protected]>
* i965/vs: Move logic for weird CMP type handling to CMP generators.Eric Anholt2011-08-312-40/+23
| | | | | | v2: Don't bother with the no-dst-reg version of CMP() Reviewed-by: Kenneth Graunke <[email protected]>
* i965/vs: Convert emit() calls to the new instruction generators.Eric Anholt2011-08-311-166/+127
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* i965/vs: Convert gen6 userclip handling to new generators.Eric Anholt2011-08-311-3/+3
| | | | | | | | This DP4 had one of its operands missing, so we were generating garbage clip distances. Using the per-opcode instruction generators made it obvious. Reviewed-by: Kenneth Graunke <[email protected]>
* i965/vs: Create instruction generators outside of the emit() functions.Eric Anholt2011-08-312-0/+90
| | | | | | v2: Fixed gen6 IF(). Reviewed-by: Kenneth Graunke <[email protected]>
* egl_dri2: Drop dri2_surface_type enumBenjamin Franzke2011-08-312-18/+9
| | | | | Was only used in platform_wayland, and the remaining egl stack uses _EGLSurface::Type with one of EGL_{WINDOW,PIXMAP,PBUFFER}_BIT.
* egl_dri2: add pbuffer support to platform_androidChia-I Wu2011-08-311-5/+16
| | | | | | This is a simple change thanks to allocateBuffer. Reviewed-by: Chad Versace <[email protected]>
* egl_dri2: check the surface type in platform_androidChia-I Wu2011-08-311-45/+56
| | | | | | | Check the surface type is EGL_WINDOW_BIT before doing anything, in preparation for pbuffer support. Reviewed-by: Chad Versace <[email protected]>
* egl_dri2: refactor droid_get_buffers_with_formatChia-I Wu2011-08-311-27/+39
| | | | | | Move the loop to parse attachments to its own function. Reviewed-by: Chad Versace <[email protected]>
* egl_dri2: set ctx->WindowRenderBufferChia-I Wu2011-08-311-0/+6
| | | | | | | | | Set ctx->WindowRenderBuffer to EGL_BACK_BUFFER. As EGL_WINDOW_BIT of a config is set only when there is dri_double_buffer, that makes sure window surfaces are always double-buffered and contexts will render to the back buffer. Reviewed-by: Chad Versace <[email protected]>
* nv50,nvc0: fix multisample format hackChristoph Bumiller2011-08-312-2/+2
| | | | | | | | Advertising different format support based on sample count was a bad idea, it made resolve to window work, but resolve to anything else would fail. See 9f4998639c3c47f0b7ee3e2a29b7f3609d3f7796.
* intel: Restructure TexSubImage as just the 2D implementation and blit func.Eric Anholt2011-08-301-100/+114
| | | | | | | | | | | Fixes a segfault in piglit copyteximage where I accidentally removed the dst_bo setup in the previous cleanup. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=40474 Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Ian Romanick <[email protected]> Tested-by: Sean McNamara <[email protected]> Tested-by: Ian Romanick <[email protected]>
* intel: Remove the passthrough TexSubImage[13]D functions.Eric Anholt2011-08-301-42/+0
| | | | | | | | | All we need for these is _mesa_store_texsubimage[13]d(), since we don't do the blit path. Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Ian Romanick <[email protected]> Tested-by: Ian Romanick <[email protected]>
* i965/vs: Fix GL_FIXED setup when a writemask is present.Eric Anholt2011-08-302-13/+24
| | | | | | | | | | | | By emitting code before generate_code(), we ended up in align1 mode where writemasks don't exist, so we rescaled gl_Vertex.w and things went badly. By moving GL_FIXED support to the visitor, we end up with normal codegen, and as a bonus the GL_FIXED setup ends up getting printed appropriately in debug output. Fixes gtf/GL2Tests/fixed_data_type Reviewed-by: Kenneth Graunke <[email protected]>
* i965/vs: Pack live uniform vectors together in the push constant upload.Eric Anholt2011-08-304-3/+98
| | | | | | | | | | At some point we need to also move uniform accesses out to pull constants when there are just too many in use, but we lack tests for that at the moment. Fixes glsl-vs-large-uniform-array. Reviewed-by: Kenneth Graunke <[email protected]>
* i965/vs: Track uniforms as separate vectors once we've done array access.Eric Anholt2011-08-303-0/+38
| | | | | | | This will make it easier to figure out which elements are totally unused and not upload them. Reviewed-by: Kenneth Graunke <[email protected]>
* i965/vs: Don't lower uniform array indexing.Eric Anholt2011-08-301-1/+1
| | | | | | | | | | This avoids the massive conditional move array access, and brings code generation quality for the new VS backend into the realm of efficiency of the old backend (roughly 20% more instructions generated than before across shader-db, instead of assertion failing for generating over 10,000 instructions on many shaders!). Reviewed-by: Kenneth Graunke <[email protected]>
* i965/vs: Add support for pull constant loads for uniform arrays.Eric Anholt2011-08-306-5/+195
| | | | | v2: reworked the instruction emit and made use of gen6_resolve_implied_move, from Ken's review
* i965/vs: Restructure emit() functions around a vec4_instruction constructor.Eric Anholt2011-08-302-16/+33
| | | | | | We sometimes want to put an instruction somewhere besides the end of the instruction stream, and we also want per-opcode instruction generation to enable compile-time checking of operands.
* i965: Make the old VS backend record pull constant references in pull_params[].Eric Anholt2011-08-303-9/+25
| | | | | | | We'll be using that to track things for the new VS backend, and this will avoid cluttering brw_vs_surface_state.c for it. Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: Fix glGetUniform() type conversions.Eric Anholt2011-08-301-58/+79
| | | | | | | | | | | | | | | | | | | | | We were primarily failing to convert in the NativeIntegers case, which this fixes. However, we were also just truncating float uniforms when converting to integer, which does not appear to be the correct behavior. Note, however, that the NVIDIA drivers also truncate instead of rounding. GL_DOUBLE return type is dropped because it was never used and completely broken. It can be added when there's test code. Fixes piglit ARB_shader_objects/getuniform v2: This is a rewrite of my previous glGetUniform patch, which Ken pointed out missed storage_type-based conversions to integer, which was totally broken still thanks to a typo in the testcase. v3: Quote the spec justifying the rounding behavior. Acked-by: Kenneth Graunke <[email protected]> Acked-by: Ian Romanick <[email protected]>
* mesa: Make the gl_constant_value's bool occupy the same space as float/int.Eric Anholt2011-08-301-1/+1
| | | | | | | | | At least for Intel, all our uniform components are of uint32_t size, either float or signed or unsigned int. For uploading uniform data in the driver, it's much easier to upload a full dword per uniform element instead of trying to pick out the bool byte and then fill in the top 3 bytes of pad with 0. Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Use native integer uniforms when the new VS backend is in use.Eric Anholt2011-08-306-31/+13
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* i965/vs: Move the flag for whether to use the new backend to the context.Eric Anholt2011-08-303-5/+4
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* i965: Build i965_dri.so for AndroidChad Versace2011-08-303-2/+98
| | | | | | | Compile tested only. Reviewed-by: Chia-I Wu <[email protected]> Signed-off-by: Chad Versace <[email protected]>
* i965: Fix Android build by removing relative includesChad Versace2011-08-3024-40/+40
| | | | | | | | | | Replace each occurence of #include "../glsl/*.h" with #include "glsl/*.h" Reviewed-by: Ian Romanick <[email protected]> Signed-off-by: Chad Versace <[email protected]>
* dri: Build libmesa_dri_common for AndroidChad Versace2011-08-303-1/+71
| | | | | | | | libmesa_dri_common is a static library that contains the sources in src/mesa/drivers/dri/common. Each DRI driver should link to it. Reviewed-by: Chia-I Wu <[email protected]> Signed-off-by: Chad Versace <[email protected]>
* make: Document imported variablesChad Versace2011-08-301-0/+6
| | | | | | | | In src/mesa/Android.mk, it is non-trivial to determine which variables are imported by `include sources.mak`. So document them. Reviewed-by: Chia-I Wu <[email protected]> Signed-off-by: Chad Versace <[email protected]>
* mesa: Build libmesa_dricore.a for AndroidChad Versace2011-08-301-0/+29
| | | | | | | | libmesa_dricore.a is analogous to the libmesa.a built by the Autoconf build. Reviewed-by: Chia-I Wu <[email protected]> Signed-off-by: Chad Versace <[email protected]>
* tnl: fix regression in bind_indices()Brian Paul2011-08-301-1/+2
| | | | | Commit 2ea1ff38164d95f8291ef2e5dfe2cb13936a60f2 caused the regression. Fixes https://bugs.freedesktop.org/show_bug.cgi?id=40413
* tnl: add const qualifier to silence warningBrian Paul2011-08-301-1/+1
|
* tnl: use buffer helper functions to improve readbilityBrian Paul2011-08-301-1/+3
|
* make: Factor out source lists from drivers/dri/common into Makefile.sourcesChad Versace2011-08-302-13/+26
| | | | | | | | | | | | | | | In order that the Autoconf and Android build can share the same source lists, move the lists from src/mesa/drivers/dri/Makefile.defines into src/mesa/drivers/dri/common/Makefile.sources I would like for Android to just reuse Makefile.defines, but the file is unsuitable for reuse. Reviewed-by: Chia-I Wu <[email protected]> Reviewed-by: Ian Romanick <[email protected]> Signed-off: Chad Versace <[email protected]>
* make: Remove duplicate occurence of driverfuncs.cChad Versace2011-08-302-2/+0
| | | | | | | | | | driverfuncs.o is already contained in libmesa.a, so remove it from the following source lists: src/mesa/drivers/dri/Makefiles.defines:COMMON_SOURCES. src/mesa/drivers/dri/swrast/Makefile:SWRAST_COMMON_SOURCES Reviewed-by: Ian Romanick <[email protected]> Signed-off-by: Chad Versace <[email protected]>
* make: Remove duplicate defintion of COMMON_SOURCES in Radeon makefilesChad Versace2011-08-302-18/+0
| | | | | | | | | Remove defintion of COMMON_SOURCES from {r300,r660}/Makefile. The defintion is a duplicate of that found in src/mesa/drivers/dri/Makefile.defines. Reviewed-by: Ian Romanick <[email protected]> Signed-off-by: Chad Versace <[email protected]>
* r600g: Make unaligned 3D textures work on +evergreenChristian König2011-08-301-1/+5
| | | | | | The layersize calculation is slightly different on +evergreen. This makes mpeg2 video decoding and piglits texture-packed-formats test work correctly on this hardware.
* nouveau: use PRIu64 for printing uint64_tChristoph Bumiller2011-08-303-2/+6
|
* nouveau/mm: move slabs to correct list on memory releaseChristoph Bumiller2011-08-301-5/+5
| | | | | Should get rid of "destroying GPU memory cache with some buffers still in use" message.
* winsys/radeon: Create async thread only onceMaarten Lankhorst2011-08-302-21/+50
| | | | | | | | I noticed that a thread was created for every time async flush was called, so I moved it and used some semaphores to synch. Signed-off-by: Maarten Lankhorst <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Signed-off-by: Christian König <[email protected]>
* nvfx: use common NOUVEAU_RESOURCE_FLAG_LINEAR defineChristoph Bumiller2011-08-308-15/+16
|
* nv50: add support for linear textures and render targetsChristoph Bumiller2011-08-307-14/+63
|
* nv50: align pitch of linear surfaces correctlyChristoph Bumiller2011-08-301-1/+2
|
* nv50: handle TGSI_OPCODE_ROUNDChristoph Bumiller2011-08-305-3/+10
| | | | Will round to nearest-even.
* nv50,nvc0: add states mask to state validation functionChristoph Bumiller2011-08-308-24/+31
| | | | | | This prevents null dereferences in validation of interdependent state after a switch to a pipe context where we mark all state as dirty but where not all state is valid / set yet.
* nv50,nvc0: reject R8G8B8A8/X8_UNORM for multisample surfacesChristoph Bumiller2011-08-302-2/+17
| | | | | | The window system buffer will be BGRA and applications will try to directly resolve to it, which would trigger an INVALID_OPERATION in BlitFramebuffer if the multisample renderbuffer is RGBA.
* mesa: update multisample state on _NEW_BUFFERSChristoph Bumiller2011-08-301-1/+1
| | | | A change in sampleBuffers affects the final enable value.
* glu: Avoid defining conflicting DEBUG NDEBUG macros.José Fonseca2011-08-301-1/+0
|