Keith Whitwell [Mon, 23 Nov 2009 01:47:57 +0000 (01:47 +0000)]
i965g: use correct key size for vs upload
Keith Whitwell [Mon, 23 Nov 2009 00:58:13 +0000 (00:58 +0000)]
i965g: apply linear math to both linear and perspective attrs
Keith Whitwell [Sat, 21 Nov 2009 01:52:22 +0000 (01:52 +0000)]
i965g: get basic texturing working again
Revert to fixed-layout surface binding table -- it's probably the best
way to do this. Pass sampler and texture numbers separately even
though we're always keeping them the same at present.
Keith Whitwell [Fri, 20 Nov 2009 04:40:41 +0000 (20:40 -0800)]
i965g: fix typo converting wm src regs
Keith Whitwell [Fri, 20 Nov 2009 04:02:42 +0000 (20:02 -0800)]
i965g: fragment shader immediates working
Keith Whitwell [Fri, 20 Nov 2009 03:51:04 +0000 (19:51 -0800)]
i965g: first pass at vs immediates in curbe
Keith Whitwell [Fri, 20 Nov 2009 03:50:19 +0000 (19:50 -0800)]
progs/vp: add param and imm test
Keith Whitwell [Fri, 20 Nov 2009 03:41:25 +0000 (19:41 -0800)]
i965g: get linear vs perspective interpolation working again
Keith Whitwell [Fri, 20 Nov 2009 03:31:32 +0000 (19:31 -0800)]
i965g: include interpolation info in fs signature
Keith Whitwell [Fri, 20 Nov 2009 03:15:21 +0000 (19:15 -0800)]
i965g: special case setup when fs has no inputs
Keith Whitwell [Fri, 20 Nov 2009 02:55:18 +0000 (18:55 -0800)]
i965g: add new state flag tracking fs signature changes
Keith Whitwell [Fri, 20 Nov 2009 02:47:07 +0000 (18:47 -0800)]
i965g: fix typo in previous commit
Keith Whitwell [Fri, 20 Nov 2009 00:53:02 +0000 (16:53 -0800)]
progs/fp: add simple imm, param tests
Keith Whitwell [Fri, 20 Nov 2009 00:14:44 +0000 (16:14 -0800)]
i965g: setup nr_attrs should track nr fragment shader inputs
This would be equivalent to taking the nr outputs of the vp varient
Keith Whitwell [Fri, 20 Nov 2009 00:09:39 +0000 (16:09 -0800)]
i965g: get fragment constants sort-of working
Keith Whitwell [Thu, 19 Nov 2009 23:04:00 +0000 (15:04 -0800)]
i965g: make the load-before-use vs immediate path work
Keith Whitwell [Thu, 19 Nov 2009 22:47:24 +0000 (14:47 -0800)]
i965g: fix initialization of texture width/height/depth arrays
Will remove these arrays in another branch - they're completely redundant.
Keith Whitwell [Wed, 18 Nov 2009 22:40:43 +0000 (14:40 -0800)]
i965g: remove more references to nr_vp_outputs in wm compilation
We're really more concerned about how many inputs the fragment shader
is expecting.
Keith Whitwell [Tue, 17 Nov 2009 22:46:23 +0000 (14:46 -0800)]
i965g: handle special vs outputs specially
Where vs output semantic tags indicate an output is signficant for
fixed function processing (such as clipping, unfilled modes, etc),
retain information about that output so that we can get to it easily
later on.
Fix up the unfilled processing, but hard-wire edgeflag to one for now.
With this change, trivial/tri-unfilled works.
Keith Whitwell [Sun, 15 Nov 2009 19:47:57 +0000 (11:47 -0800)]
i965g rename offset_edge to offset_edgeflag
Keith Whitwell [Sun, 15 Nov 2009 20:24:33 +0000 (12:24 -0800)]
i965g: remove droppings in xlib winsys
Keith Whitwell [Sun, 15 Nov 2009 00:06:57 +0000 (16:06 -0800)]
i965g: restore check on line smooth state
Keith Whitwell [Wed, 11 Nov 2009 02:07:11 +0000 (18:07 -0800)]
i965g: consult fs inputs when laying out vs output regs
Vertex shader now emits just the FS inputs, in the positions and order
expected by the fragment shader.
This means potentially regenerating the vertex shader to match
different fragment shader's input layouts.
Keith Whitwell [Tue, 10 Nov 2009 02:04:58 +0000 (18:04 -0800)]
i965g: skip over vertex position output when preallocating FS inputs
Keith Whitwell [Fri, 6 Nov 2009 23:34:33 +0000 (23:34 +0000)]
i965g: some more cases where file_max[] is used without obligatory +1
Keith Whitwell [Fri, 6 Nov 2009 23:31:49 +0000 (23:31 +0000)]
i965g: smaller upload buffer for index data
Keith Whitwell [Fri, 6 Nov 2009 23:29:47 +0000 (23:29 +0000)]
i965g: fix off-by-one on curbe upload
Keith Whitwell [Fri, 6 Nov 2009 21:17:08 +0000 (21:17 +0000)]
i965g: avoid use of internally generated immediates
Currently not working, so don't generate more of them.
Keith Whitwell [Fri, 6 Nov 2009 20:46:27 +0000 (20:46 +0000)]
trivial: make tri-orig more closely match the original version of tri...
Jakob Bornecrantz [Sat, 7 Nov 2009 17:47:00 +0000 (17:47 +0000)]
i965g: Fixup texture formats
Jakob Bornecrantz [Sat, 7 Nov 2009 15:47:21 +0000 (15:47 +0000)]
i965g: Formalize on S8Z24 as the suported depth format
Jakob Bornecrantz [Fri, 6 Nov 2009 20:44:09 +0000 (20:44 +0000)]
i965g: Fixup buffer creation function
First tri!
Jakob Bornecrantz [Fri, 6 Nov 2009 20:19:39 +0000 (20:19 +0000)]
i965g: Add texture transfer functions
They don't seem to work. Maybe we are forgetting to flush the gpu or something.
Jakob Bornecrantz [Fri, 6 Nov 2009 19:05:41 +0000 (19:05 +0000)]
i965g: Match pitch modification on get buffer as well
This is a ugly hack in order to match what the intel
X driver gives us. However putting this in the winsys
where it fits better forces it reach more into the
driver then it already does.
Jakob Bornecrantz [Fri, 6 Nov 2009 18:40:04 +0000 (18:40 +0000)]
progs/trivial: Ignores
Jakob Bornecrantz [Fri, 6 Nov 2009 18:34:23 +0000 (18:34 +0000)]
i965g: First clear!
Keith Whitwell [Fri, 6 Nov 2009 14:20:04 +0000 (14:20 +0000)]
i965g: get rid of cc key, simplify state upload
Keep a valid reloc table active between uploads, avoid
recalculating it every time.
Jakob Bornecrantz [Fri, 6 Nov 2009 16:41:58 +0000 (16:41 +0000)]
i965g: trivial/clear can now send stuff to hardware
Added a flag if we should send commands to hardware
as what we send isn't all that correct.
Jakob Bornecrantz [Fri, 6 Nov 2009 16:40:54 +0000 (16:40 +0000)]
i965g: Fix texture blanket function
Jakob Bornecrantz [Fri, 6 Nov 2009 15:54:27 +0000 (15:54 +0000)]
i965g: Add functions needed by the winsys
Jakob Bornecrantz [Fri, 6 Nov 2009 00:15:01 +0000 (00:15 +0000)]
i965g: Winsys whitespace
Jakob Bornecrantz [Fri, 6 Nov 2009 00:09:28 +0000 (00:09 +0000)]
i965g: Build winsys again
Jakob Bornecrantz [Fri, 6 Nov 2009 00:09:04 +0000 (00:09 +0000)]
i965g: Header whitespace
Keith Whitwell [Fri, 6 Nov 2009 15:40:16 +0000 (15:40 +0000)]
i965g: get brw_state_debug.c building
Keith Whitwell [Fri, 6 Nov 2009 14:18:28 +0000 (14:18 +0000)]
i965g: propogate index size state
Keith Whitwell [Fri, 6 Nov 2009 13:41:52 +0000 (13:41 +0000)]
i965g: remove references to brw_surface_bo()
Keith Whitwell [Fri, 6 Nov 2009 13:09:12 +0000 (13:09 +0000)]
i965g: plumb through fb_write target and eot data
Keith Whitwell [Fri, 6 Nov 2009 12:51:26 +0000 (12:51 +0000)]
i965g: propogate nr_cbufs into wm prog key
Keith Whitwell [Fri, 6 Nov 2009 12:01:11 +0000 (12:01 +0000)]
i965g: init saturate field in fp dst_reg helper
Keith Whitwell [Fri, 6 Nov 2009 11:56:52 +0000 (11:56 +0000)]
i965g: add dumping for our new pass_fp output
Keith Whitwell [Fri, 6 Nov 2009 11:21:48 +0000 (11:21 +0000)]
i965g: disassemble each instruction as generated
Keith Whitwell [Fri, 6 Nov 2009 11:21:08 +0000 (11:21 +0000)]
i965g: hardwire linear interpolation for now
seems to generate saner code, need to go back and fix perspective
interpolation (and remove the hard-wire) once this is working.
Keith Whitwell [Fri, 6 Nov 2009 10:38:19 +0000 (10:38 +0000)]
i965g: fix some reloc counts
Keith Whitwell [Fri, 6 Nov 2009 10:24:19 +0000 (10:24 +0000)]
i965g: don't set up vs stack register for non-branching shaders
Keith Whitwell [Fri, 6 Nov 2009 10:19:39 +0000 (10:19 +0000)]
i965g: add DEBUG_MIN_URB flag
Keith Whitwell [Fri, 6 Nov 2009 10:19:24 +0000 (10:19 +0000)]
i965g: tgsi outputs cannot be used as source regs
Keith Whitwell [Fri, 6 Nov 2009 09:35:25 +0000 (09:35 +0000)]
i965g: use curr.vertex_element state directly
Keith Whitwell [Fri, 6 Nov 2009 09:22:46 +0000 (09:22 +0000)]
trivial: add vbo-tri, an even simpler version of tri.c
Keith Whitwell [Fri, 6 Nov 2009 08:57:40 +0000 (08:57 +0000)]
i965g: don't emit line stipple packet if stipple disabled
Keith Whitwell [Fri, 6 Nov 2009 08:57:02 +0000 (08:57 +0000)]
i965g: populate brw_context chipset id
Keith Whitwell [Fri, 6 Nov 2009 08:54:01 +0000 (08:54 +0000)]
i965g: make sure blend color packet header is initialized
We will emit this packet at startup (dirty == ~0), even if we haven't
had the state tracker call into brw_set_blend_color() yet.
This way is a little more efficient also.
Keith Whitwell [Fri, 6 Nov 2009 08:33:10 +0000 (08:33 +0000)]
i965g: remove/disable inactive state atoms
Keith Whitwell [Fri, 6 Nov 2009 08:29:09 +0000 (08:29 +0000)]
i965g: populate wm reloc array earlier
Still have to calculate the reloc background in two places.
Keith Whitwell [Fri, 6 Nov 2009 08:28:17 +0000 (08:28 +0000)]
i965g: point_rast_rule comment no longer applies
Not sure exactly what state we want here now, will need to experiment.
Keith Whitwell [Fri, 6 Nov 2009 08:27:43 +0000 (08:27 +0000)]
i965g: scissor off by one
Keith Whitwell [Fri, 6 Nov 2009 07:47:07 +0000 (07:47 +0000)]
i965g: restore code to populate the relocation background
I'm emitting this in two places now, to the data presented
for upload and also in the delta field of the reloc struct.
Probably want to remove the delta field and just pull the
background from the key.
Keith Whitwell [Thu, 5 Nov 2009 22:51:34 +0000 (22:51 +0000)]
i965g: clean up winsys dumping code a little
Keith Whitwell [Thu, 5 Nov 2009 22:43:36 +0000 (22:43 +0000)]
i965g: pass relocation information in an array with bo_subdata
Makes it easier to dump as we get all of the information
about the upload in a single hit.
Opens the window to simplification in the driver if these
relocation arrays can be maintained statically rather than
being recreated whenever we check for a new upload.
Still needs some cleanup to avoid uglyness introduced with the
delta values.
Keith Whitwell [Thu, 5 Nov 2009 21:09:51 +0000 (21:09 +0000)]
i965g: propogate map-buffer-range semantics down to winsys
Keith Whitwell [Thu, 5 Nov 2009 20:34:27 +0000 (20:34 +0000)]
i965g: make the winsys responsible for all buffer->offset handling
The winsys now inserts the presumed offset into referring buffers from
inside of bo_emit_reloc(). Remove the many locally coded places where
this was happening in the driver and eliminate the worry of getting it
wrong.
No longer need to expose offset values to the driver at all, so no need
to worry about what to do in the driver when they change. Just use
zero values wherever we had offsets previously -- the relocations will
fix it all up for us.
Keith Whitwell [Thu, 5 Nov 2009 19:58:02 +0000 (19:58 +0000)]
i965g: remove duplicate viewport state in brw_context
Keith Whitwell [Thu, 5 Nov 2009 19:57:59 +0000 (19:57 +0000)]
i965g: correct sense of writedisable flags
Keith Whitwell [Thu, 5 Nov 2009 17:43:57 +0000 (17:43 +0000)]
brw: push more dumping into the winsys
Keith Whitwell [Thu, 5 Nov 2009 17:42:38 +0000 (17:42 +0000)]
i965g: correct size of surf_bo array
Keith Whitwell [Thu, 5 Nov 2009 17:42:13 +0000 (17:42 +0000)]
i965g: use Elements in loops over arrays
Keith Whitwell [Thu, 5 Nov 2009 17:41:35 +0000 (17:41 +0000)]
i965g: add const qualifiers
Keith Whitwell [Thu, 5 Nov 2009 15:34:18 +0000 (15:34 +0000)]
i965g: disassemble more than one instruction at a time
Keith Whitwell [Thu, 5 Nov 2009 15:15:04 +0000 (15:15 +0000)]
i965g: remove old dumping code
Keith Whitwell [Thu, 5 Nov 2009 15:10:22 +0000 (15:10 +0000)]
i965g: call dissassembler for appropriate data uploads
Keith Whitwell [Thu, 5 Nov 2009 13:57:05 +0000 (13:57 +0000)]
i965g: add lots of error checks and early returns
Any allocation that may fail should be checked, and propogate the
error upwards. At the highest level we will flush batch and retry.
This is an alternate strategy to what the original DRI driver did of
attempting to flush batch from the lowest levels (eg inside
BEGIN_BATCH). The trouble with that strategy was that flushes could
occur at unexpected times, and additionally there was a need for a
wierd notification mechanism to propogate the 'lost context' state
back up to higher levels.
Propogating the errors directly gives us a lot of flexibility how to
deal with these states, at the expense of a lot more checking in the
code.
Will add some sanity checks later to make sure that out-of-memory
conditions are properly escalated and not lost halfway up the stack.
José Fonseca [Thu, 5 Nov 2009 12:44:36 +0000 (12:44 +0000)]
i965g: Don't dump pads or dwords aliases.
Keith Whitwell [Thu, 5 Nov 2009 12:35:22 +0000 (12:35 +0000)]
i965g: hook up dumpers in dumping winsys
José Fonseca [Thu, 5 Nov 2009 12:22:01 +0000 (12:22 +0000)]
i965g: Dumper for i965 structures.
Keith Whitwell [Thu, 5 Nov 2009 10:59:02 +0000 (10:59 +0000)]
i965g: add data type tags to aid dumping/decoding
Keith Whitwell [Thu, 5 Nov 2009 08:01:48 +0000 (08:01 +0000)]
i965g: use pipe_error return value for brw_batchbuffer_require_space
trivial/tri runs without crashing (on debug winsys) but still produces
obviously incorrect command buffers.
Keith Whitwell [Thu, 5 Nov 2009 08:00:33 +0000 (08:00 +0000)]
i965g: fix compiler warning
Jakob Bornecrantz [Thu, 5 Nov 2009 00:42:30 +0000 (00:42 +0000)]
i965g: Builds with scons
But there are some missing symbols, "nm -u i965_dri.so"
[SNIP]
U brw_surface_bo
U brw_surface_pitch
U brw_texture_blanket_winsys_buffer
U brw_texture_get_winsys_buffer
U brw_update_dirty_counts
[SNIP]
Jakob Bornecrantz [Thu, 5 Nov 2009 00:38:51 +0000 (00:38 +0000)]
i965g: Fix debug check
Jakob Bornecrantz [Wed, 4 Nov 2009 23:02:13 +0000 (23:02 +0000)]
i965g: Build with configure
Jakob Bornecrantz [Wed, 4 Nov 2009 23:02:04 +0000 (23:02 +0000)]
i965g: Do not create a symlink for i965_dri.so
Jakob Bornecrantz [Wed, 4 Nov 2009 23:01:24 +0000 (23:01 +0000)]
i915g: Do not create a symlink for i965_dri.so
Keith Whitwell [Wed, 4 Nov 2009 23:44:16 +0000 (23:44 +0000)]
i965g: enable line stipple packet emit
With this change, trivial/tri manages to build and emit
a fairly unconvincing command buffer (to the debug winsys),
and then crashes.
Keith Whitwell [Wed, 4 Nov 2009 23:41:30 +0000 (23:41 +0000)]
i965g: fix order of calculation of brw->wm.nr_surfaces
Keith Whitwell [Wed, 4 Nov 2009 23:37:52 +0000 (23:37 +0000)]
i965g: consolidate some includes
Keith Whitwell [Wed, 4 Nov 2009 23:33:08 +0000 (23:33 +0000)]
i965g: fix some asserts
Keith Whitwell [Wed, 4 Nov 2009 23:30:52 +0000 (23:30 +0000)]
i965g: remove redundant screen pointer in brw context struct
Keith Whitwell [Wed, 4 Nov 2009 23:27:50 +0000 (23:27 +0000)]
i965g: initialize winsys pointer in surface cache
Keith Whitwell [Wed, 4 Nov 2009 23:27:30 +0000 (23:27 +0000)]
i965g: init pointer to null, avoid segfault
Keith Whitwell [Wed, 4 Nov 2009 23:22:48 +0000 (23:22 +0000)]
i965g: clean up wm init_registers func
Keith Whitwell [Wed, 4 Nov 2009 23:18:07 +0000 (23:18 +0000)]
i965g: hook up some missing vertex shader code