summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* vc4: Clean up TMU write validation.Eric Anholt2014-08-111-77/+64
| | | | | | The comment conflicted with the support in the code, so I moved the TMU write validation to where the comment was, and dropped some dead arguments from the functions while changing their signatures.
* vc4: Update a comment about shader validationEric Anholt2014-08-111-4/+2
|
* vc4: Add proper translation from Zc to Zs for vertex output.Eric Anholt2014-08-112-1/+18
| | | | This fixes the remaining failure in depthfunc.
* vc4: Add support for depth clears and tests within a tile.Eric Anholt2014-08-1110-12/+65
| | | | | | | | | This doesn't load/store the Z contents across submits yet. It also disables early Z, since it's going to require tracking of Z functions across multiple state updates to track the early Z direction and whether it can be used. v2: Move the key setup to before the search for the key.
* vc4: Avoid flushing when mapping buffers that aren't in the batch.Eric Anholt2014-08-113-1/+50
| | | | | This should prevent a bunch of unnecessary flushes for things like updating immediate vertex data.
* vc4: Drop the flush at the end of the drawEric Anholt2014-08-112-2/+2
| | | | Now we actally get multiple draw calls per submit.
* vc4: Align following shader recs to 16 bytes.Eric Anholt2014-08-112-2/+10
| | | | | Otherwise, the low address bits will end up being interpreted as attribute counts.
* vc4: Fix a potential src buffer overflow in shader rec validation.Eric Anholt2014-08-111-0/+1
|
* vc4: Keep a reference to BOs queued for rendering.Eric Anholt2014-08-113-8/+4
| | | | | | Otherwise, once we're not flushing at the end of every draw, we'll free things like gallium resources, and free the backing GEM object, before we've flushed the rendering using it to the kernel.
* vc4: Compute the proper end address of the relocated command lists.Eric Anholt2014-08-112-2/+5
| | | | | | | | | render_cl_size/bin_cl_size includes relocations, while the hardware buffer doesn't. If you don't emit a HALT packet, the command parser continues until the end register's value. We can't allow executing unvalidated buffer contents (and it's actually harmful in the render lists Mesa is emitting, since VC4_PACKET_STORE_MS_TILE_BUFFER_AND_EOF doesn't trigger a halt).
* vc4: Walk tiles horizontally, then vertically.Eric Anholt2014-08-111-2/+2
| | | | | I was confused looking at my addresses in dumps because I was seeing the tile branch offsets jumping all over.
* vc4: Track clears veresus uncleared draws, and the clear color.Eric Anholt2014-08-113-34/+117
| | | | | | This is a step toward queueing more than one draw per frame. Fixes piglit attribute0 test, since we get a working clear color now.
* vc4: Move the rest of RCL setup to flush time.Eric Anholt2014-08-112-33/+30
| | | | | We only want to set up render target config and clear colors once per frame.
* vc4: Move render command list calls to vc4_flush()Eric Anholt2014-08-112-40/+43
|
* vc4: Move bin command list ending commands to vc4_flush()Eric Anholt2014-08-112-4/+4
|
* vc4: Rename fields in the kernel interface.Eric Anholt2014-08-113-32/+32
| | | | | I decided I didn't like "len" compared to "size", and I keep typing shader_rec instead of shader_record[s] elsewhere, so make it consistent.
* vc4: Fix things to validate more than one shader state in a submit.Eric Anholt2014-08-113-67/+78
|
* vc4: Rewrite the kernel ABI to support texture uniform relocation.Eric Anholt2014-08-1110-97/+608
| | | | | | | | | | This required building a shader parser that would walk the program to find where the texturing-related uniforms are in the uniforms stream. Note that as of this commit, a new kernel is required for rendering on actual VC4 hardware (currently that commit is named "drm/vc4: Introduce shader validation and better command stream validation.", but is likely to be squashed as part of an eventual merge of the kernel driver).
* vc4: Add docs for the drm interfaceEric Anholt2014-08-111-9/+61
|
* vc4: Add load/store to the validatorEric Anholt2014-08-111-11/+9
|
* vc4: Switch simulator to using kernel validatorEric Anholt2014-08-1111-62/+840
| | | | | | | | This ensures that when I'm using the simulator, I get a closer match to what behavior on real hardware will be. It lets me rapidly iterate on the kernel validation code (which otherwise has a several-minute turnaround time), and helps catch buffer overflow bugs in the userspace driver faster.
* vc4: Drop pointless shader state structEric Anholt2014-08-112-14/+10
|
* vc4: Add support for texture rectanglesEric Anholt2014-08-112-0/+42
| | | | v2: Rebase on helpers change.
* vc4: Add support for texturing (under simulation)Eric Anholt2014-08-118-13/+277
| | | | | | | | Only rgba8888 works, and only a single texture unit, and it's only under simulation because I haven't built the kernel interface yet. v2: Rebase on helpers. v3: Fold in the don't-break-the-arm-build fix.
* vc4: Drop PIPE_SHADER_CAP_MAX_ADDRSEric Anholt2014-08-111-2/+0
| | | | Fixes the build since c10332bbb8889d733bdaa729ef23cbd90176b55d
* gallium: remove PIPE_SHADER_CAP_MAX_ADDRSMarek Olšák2014-08-1116-37/+1
| | | | | | | | | | | | | | | This limit is fixed in Mesa core and cannot be changed. It only affects ARB_vertex_program and ARB_fragment_program. The minimum value for ARB_vertex_program is 1 according to the spec. The maximum value for ARB_vertex_program is limited to 1 by Mesa core. The value should be zero for ARB_fragment_program, because it doesn't support ARL. Finally, drivers shouldn't mess with these values arbitrarily. Reviewed-by: Ilia Mirkin <[email protected]>
* st/mesa: compute supported GL versions at DRIscreen creationMarek Olšák2014-08-111-4/+27
| | | | | | | This computes all GL versions before any context is created. It's a requirement for GLX_MESA_query_renderer. Reviewed-by: Ilia Mirkin <[email protected]>
* gallium: pass st_config_options to query_versionsMarek Olšák2014-08-116-23/+30
| | | | | | | So move it from dri_context to dri_screen. This will be needed for version computations. Reviewed-by: Ilia Mirkin <[email protected]>
* mesa: return version 0 if the computed core profile version is too lowMarek Olšák2014-08-111-2/+7
| | | | Reviewed-by: Ilia Mirkin <[email protected]>
* mesa: add _mesa_get_version, a ctx-independent variant of _mesa_compute_versionMarek Olšák2014-08-112-126/+152
| | | | | Reviewed-by: Ian Romanick <[email protected]> Reviewed-by: Ilia Mirkin <[email protected]>
* mesa: add a context-independent variant of _mesa_override_gl_versionMarek Olšák2014-08-112-10/+23
| | | | | | | v2: changed GLboolean -> bool Reviewed-by: Ian Romanick <[email protected]> Reviewed-by: Ilia Mirkin <[email protected]>
* mesa: make _mesa_init_constants context-independent and publicMarek Olšák2014-08-112-101/+104
| | | | | Reviewed-by: Ian Romanick <[email protected]> Reviewed-by: Ilia Mirkin <[email protected]>
* mesa: make _mesa_init_extensions context-independentMarek Olšák2014-08-113-6/+6
| | | | | Reviewed-by: Ian Romanick <[email protected]> Reviewed-by: Ilia Mirkin <[email protected]>
* st/mesa: make st_init_limits context-independentMarek Olšák2014-08-113-10/+14
| | | | Reviewed-by: Ilia Mirkin <[email protected]>
* mesa: move ShaderCompilerOptions into gl_constantsMarek Olšák2014-08-1119-37/+37
| | | | | Reviewed-by: Ian Romanick <[email protected]> Reviewed-by: Ilia Mirkin <[email protected]>
* st/mesa: make st_init_extensions context-independentMarek Olšák2014-08-113-192/+241
| | | | | | | | | Setting Const.MaxSamples needed a rework, so that it doesn't call st_choose_format, which depends on st_context. Other than that, there is no change in functionality. Reviewed-by: Ilia Mirkin <[email protected]>
* mesa: make _mesa_override_glsl_version context-independentMarek Olšák2014-08-116-7/+8
| | | | | Reviewed-by: Ian Romanick <[email protected]> Reviewed-by: Ilia Mirkin <[email protected]>
* gallium/stapi: move setting GL versions to the state trackerMarek Olšák2014-08-114-12/+39
| | | | | | | All flags are set for st/mesa, so the state tracker doesn't have to check them. Reviewed-by: Ilia Mirkin <[email protected]>
* st/mesa: convert the ETC1 format to an uncompressed one if unsupportedMarek Olšák2014-08-116-12/+41
| | | | | | | | I don't know of any hardware which supports it. With this, GL_OES_compressed_ETC1_RGB8_texture is supported if RGBA8 is supported. Reviewed-by: Glenn Kennard <[email protected]>
* st/mesa: add st_context parameter to st_mesa_format_to_pipe_formatMarek Olšák2014-08-119-29/+32
| | | | | | This will be used by the next commit. Reviewed-by: Glenn Kennard <[email protected]>
* st/mesa: advertise ARB_ES3_compatibility if GLSL 3.30 and ETC2 are supportedMarek Olšák2014-08-113-1/+30
|
* st/mesa: add support for ETC2 formatsMarek Olšák2014-08-114-8/+93
| | | | | | | The formats are emulated by translating them into plain uncompressed formats, because I don't know of any hardware which supports them. This is required for GLES 3.0 and ARB_ES3_compatibility (GL 4.3).
* mesa: add helper _mesa_is_format_etc2Marek Olšák2014-08-112-0/+28
| | | | | | | v2: renamed GLboolean -> bool Reviewed-by: Glenn Kennard <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* mesa: add missing GLAPIENTRY in copyimage.cBrian Paul2014-08-111-1/+1
| | | | Fixes MinGW build. Trivial.
* i965/cse: Don't eliminate instructions with side-effectsJason Ekstrand2014-08-112-2/+2
| | | | | | | | | This casues problems when converting atomics to use the GRF. Sometimes the atomic operation would get eaten by CSE when it shouldn't. v2: Roll the has_side_effects check into is_expression Signed-off-by: Jason Ekstrand <[email protected]> Reviewed-by: Matt Turner <[email protected]>
* docs/GL3: Mark ARB_copy_image as implemented on i965Jason Ekstrand2014-08-111-1/+1
|
* i965: Add support for ARB_copy_imageJason Ekstrand2014-08-115-0/+272
| | | | | | | | | | | | | | | | | This, together with the meta path, provides a complete implemetation of ARB_copy_image. v2: Add a fallback memcpy path for when the texture is too big for the blitter v3: Properly support copying between two places on the same texture in the memcpy fallback v4: Properly handle blit between the same two images in the fallback path v5: Properly handle blit between the same two compressed images in the fallback path v6: Fix a typo in a comment Signed-off-by: Jason Ekstrand <[email protected]> Reviewed-by: Neil Roberts <[email protected]>
* mesa/meta: Add a partial implementation of CopyImageSubDataJason Ekstrand2014-08-113-0/+208
| | | | | | | | | | | | | | | | This provides an implementation of CopyImageSubData that works if both textures are uncompressed. This implementation works by using a combination of texture views and BlitFramebuffer. If one of the textures is compressed, it returns false and the driver is expected to provide a fallback. v2: Don't leak fbo's Signed-off-by: Jason Ekstrand <[email protected]> Reviewed-by: Juha-Pekka Heikkila <[email protected]> Reviewed-by: Neil Roberts <[email protected]> v3: Change glGen/DeleteTextures to _mesa_Gen/DeleteTextures
* mesa/meta: Make _mesa_meta_bind_fbo_image also take a framebuffer targetJason Ekstrand2014-08-113-19/+25
| | | | | | Signed-off-by: Jason Ekstrand <[email protected]> Reviewed-by: Juha-Pekka Heikkila <[email protected]> Reviewed-by: Neil Roberts <[email protected]>
* mesa: Add GL API support for ARB_copy_imageJason Ekstrand2014-08-1113-21/+477
| | | | | | | | | | | | | | | | | This adds the API entrypoint, error checking logic, and a driver hook for the ARB_copy_image extension. v2: Fix a typo in ARB_copy_image.xml and add it to the makefile v3: Put ARB_copy_image.xml in the right place alphebetically in the makefile and properly prefix the commit message v4: Fixed some line wrapping and added a check for null v5: Check for incomplete renderbuffers Signed-off-by: Jason Ekstrand <[email protected]> Reviewed-by: Juha-Pekka Heikkila <[email protected]> Reviewed-by: Neil Roberts <[email protected]> v6: Update dispatch_sanity for the addition of CopyImageSubData