This one should bee a little better. The last one did dent set the reg
correct for COL0 if wee don't have one.

Tommy Schultz Lassen skrev:
> :-) Nov with patch :-)
>
> Oliver McFadden skrev:
>   
>> Uhh... did you forget to attach the patch?
>>
>>
>> On 7/13/07, Tommy Schultz Lassen <[EMAIL PROTECTED]> wrote:
>>     
>>> Could you trey this patch.
>>>
>>> It makes a couple of changes/fixes i found via dumps of COL0, COL1,
>>> BFC0, BFC1 in some different combinations. I also disablet PSIZ for the
>>> moment. I don't know how to set it correctly but i am quit cirten it is
>>> wrong at the moment.
>>>
>>> Is it possible for you to send me a example that dose the flickering. I
>>> would like to fix it but it would bee esier if i where able to see the
>>> problem.
>>>
>>>
>>> Oliver McFadden skrev:
>>>       
>>>> Oh, just realized I already sent you that one. I forgot I did that.
>>>>
>>>>
>>>> On 7/13/07, Oliver McFadden <[EMAIL PROTECTED]> wrote:
>>>>         
>>>>> I have a patch that will work around the flickering by restoring
>>>>>           
>>> the old
>>>       
>>>>> output
>>>>> handling in r300_vertprog.c.
>>>>>
>>>>> On 7/13/07, Oliver McFadden <[EMAIL PROTECTED]> wrote:
>>>>>           
>>>>>> I've reverted the off-by-one commit, but your patch doesn't fix my
>>>>>> flickering
>>>>>> problems... I'm not sure why that is happening.
>>>>>>
>>>>>>
>>>>>> On 7/13/07, Tommy Schultz Lassen <[EMAIL PROTECTED]> wrote:
>>>>>>             
>>>>>>> I fink i have found the problem. The binary drivers sets
>>>>>>>               
>>>>> R300_RS_CNTL_0
>>>>>           
>>>>>>> to 0x40100 in stead of 0x40080.
>>>>>>>
>>>>>>> Here is a patch that fixes that.
>>>>>>>
>>>>>>> Your comit 07ac2386f5c0ab9c2432d4b5e3490b1e13d033fc seems to bee
>>>>>>>               
>>>>> wrong(I
>>>>>           
>>>>>>> had it set the same way at first). When backface coloring is
>>>>>>>               
>>>>> enabled the
>>>>>           
>>>>>>> start reg for tex needs to bee 5. There is problems with
>>>>>>>               
>>> textures in
>>>       
>>>>>>> sample/logo and wave with that commit.
>>>>>>>
>>>>>>> NB: Du you know what R300_VAP_PVS_CNTL_1 is used for. The binary
>>>>>>>               
>>>>> drivers
>>>>>           
>>>>>>> sets it to 0x500c00. Instead of 0x400c00.
>>>>>>>
>>>>>>>
>>>>>>> Oliver McFadden skrev:
>>>>>>>               
>>>>>>>> Actually perhaps a more accurate description is random
>>>>>>>>                 
>>>>> flickering of
>>>>> the
>>>>>           
>>>>>>>> triangles. They seem to flicker white for a second.
>>>>>>>>
>>>>>>>> I checked the old code against the new code, too.
>>>>>>>>
>>>>>>>> old = 0x000003f1 new = 0x000003f3
>>>>>>>>
>>>>>>>> So the new code sets an extra bit.
>>>>>>>>
>>>>>>>>
>>>>>>>> On 7/12/07, Oliver McFadden <[EMAIL PROTECTED]> wrote:
>>>>>>>>                 
>>>>>>>>> I just found that there seem to be some bugs with output
>>>>>>>>>                   
>>> routing
>>>       
>>>>>>>>> now... With
>>>>>>>>> my
>>>>>>>>> engine I would see some random colors appear on the rendered
>>>>>>>>>                   
>>>>> tris.
>>>>>           
>>>>>>>>> I've made a patch to restore the old behaviour but this would
>>>>>>>>>                   
>>>>> break
>>>>>           
>>>>>>>>> BFC so
>>>>>>>>> we
>>>>>>>>> should really fix it properly. It probably affects other
>>>>>>>>>                   
>>> OpenGL
>>>       
>>>>>> programs
>>>>>>             
>>>>>>>>> too.
>>>>>>>>>
>>>>>>>>> On 7/11/07, Oliver McFadden <[EMAIL PROTECTED]> wrote:
>>>>>>>>>                   
>>>>>>>>>> I did some more testing and removing any one of the PRESENT
>>>>>>>>>>                     
>>>>> bits
>>>>>           
>>>>>>>>> breaks
>>>>>>>>> the
>>>>>>>>>                   
>>>>>>>>>> wave
>>>>>>>>>> and fog demos.
>>>>>>>>>>
>>>>>>>>>> I assume that those demos don't actually use all 3 colors
>>>>>>>>>>                     
>>> but
>>>       
>>>>>>>>> rather the
>>>>>>>>>                   
>>>>>>>>>> hardware must enable all or none...
>>>>>>>>>>
>>>>>>>>>> So assuming this is correct, fixing BFC1 should be pretty
>>>>>>>>>>                     
>>>>> easy...
>>>>>           
>>>>>> just
>>>>>>             
>>>>>>>>>> enable
>>>>>>>>>> all 3 bits like for BFC0.
>>>>>>>>>>
>>>>>>>>>> Let me know if you find out anything more. :-)
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On 7/11/07, Oliver McFadden <[EMAIL PROTECTED]> wrote:
>>>>>>>>>>                     
>>>>>>>>>>> I just looked at the R300_VAP_OUTPUT_VTX_FMT_0 bits some
>>>>>>>>>>>                       
>>>>> more and
>>>>>           
>>>>>>>>> found
>>>>>>>>>                   
>>>>>>>>>> the
>>>>>>>>>>                     
>>>>>>>>>>> following:
>>>>>>>>>>>
>>>>>>>>>>> (7 << 2) == R300_VAP_OUTPUT_VTX_FMT_0__COLOR_1_PRESENT |
>>>>>>>>>>>             R300_VAP_OUTPUT_VTX_FMT_0__COLOR_2_PRESENT |
>>>>>>>>>>>             R300_VAP_OUTPUT_VTX_FMT_0__COLOR_3_PRESENT;
>>>>>>>>>>>
>>>>>>>>>>> So maybe for back facing color we must enable all those
>>>>>>>>>>>                       
>>>>> bits at
>>>>>           
>>>>>>>>> once;
>>>>>>>>> the
>>>>>>>>>                   
>>>>>>>>>>> hardware might not allow them to be set individually?
>>>>>>>>>>>
>>>>>>>>>>> I'll do some more testing on this now.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On 7/11/07, Oliver McFadden <[EMAIL PROTECTED]> wrote:
>>>>>>>>>>>                       
>>>>>>>>>>>> Okay. I'll push the current changes now and I can commit
>>>>>>>>>>>>                         
>>>>> further
>>>>>           
>>>>>>>>> changes
>>>>>>>>>                   
>>>>>>>>>>>> when
>>>>>>>>>>>> you find the bits for BFC1 and FOGC. :-) I verified that
>>>>>>>>>>>>                         
>>>>>>>>>> progs/samples/fog
>>>>>>>>>>                     
>>>>>>>>>>>> and
>>>>>>>>>>>> wave are working now.
>>>>>>>>>>>>
>>>>>>>>>>>> I'm glad to hear that Revenge is being useful, and great
>>>>>>>>>>>>                         
>>>>> work
>>>>>           
>>>>>>>>> on these
>>>>>>>>>                   
>>>>>>>>>>>> patches
>>>>>>>>>>>> btw. :-)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On 7/11/07, Tommy Schultz Lassen <[EMAIL PROTECTED]>
>>>>>>>>>>>>                         
>>> wrote:
>>>       
>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>
>>>>>>>>>>>>> I would guess that as well. But i am not cirtan.
>>>>>>>>>>>>>
>>>>>>>>>>>>> I am going to trey to make some more dumps to try to
>>>>>>>>>>>>>                           
>>>>> figure
>>>>> out
>>>>>           
>>>>>>>>> COL1,
>>>>>>>>>                   
>>>>>>>>>>>>> BFC1 and FOGC.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Mvh Tommy
>>>>>>>>>>>>>
>>>>>>>>>>>>> Oliver McFadden skrev:
>>>>>>>>>>>>>                           
>>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> The patch looks good to me. :-) I'll commit it to my
>>>>>>>>>>>>>>                             
>>>>> local
>>>>>           
>>>>>>>>> tree
>>>>>>>>> and
>>>>>>>>>                   
>>>>>>>>>> do
>>>>>>>>>>                     
>>>>>>>>>>>>>> some
>>>>>>>>>>>>>> testing.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Btw, I see in r300_emit.c:r300VAPOutputCntl0 you've
>>>>>>>>>>>>>>                             
>>>>> changed
>>>>>           
>>>>>>>>> the
>>>>>>>>> bits
>>>>>>>>>                   
>>>>>>>>>>>>>> for BFC0
>>>>>>>>>>>>>> but I wonder if we should change BFC1, too. I would
>>>>>>>>>>>>>>                             
>>>>> guess
>>>>>           
>>>>>>>>> based on
>>>>>>>>>                   
>>>>>>>>>>>>>> BFC0 that
>>>>>>>>>>>>>> BFC1 should be (8 << 2)?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On 7/11/07, Tommy Schultz Lassen <[EMAIL PROTECTED]>
>>>>>>>>>>>>>>                             
>>>>> wrote:
>>>>>           
>>>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Here is a new patch for enabling Back face
>>>>>>>>>>>>>>>                               
>>> coloring.
>>>       
>>>>>>>>>>>>>>> It is parts information from revenge dumps and
>>>>>>>>>>>>>>>                               
>>> parts
>>>       
>>>>>>>>> guesswork.
>>>>>>>>>                   
>>>>>>>>>>>>>>> It also fixes a bug in r300FrontFace or rather
>>>>>>>>>>>>>>>                               
>>>>>>>>> r300UpdateCulling.
>>>>>>>>>                   
>>>>>>>>>> It
>>>>>>>>>>                     
>>>>>>>>>>>>>>> would only set GL_CW og GL_CCW if wee set some
>>>>>>>>>>>>>>>                               
>>>>> culling.
>>>>>           
>>>>>>>>>>>>>>> This patch gets wave and fog forking for me.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> /Tommy
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Tommy Schultz Lassen skrev:
>>>>>>>>>>>>>>>                               
>>>>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I as well would prefer to bee more certain.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I still need to confirm
>>>>>>>>>>>>>>>>                                 
>>>>>>>>>> R300_VAP_OUTPUT_VTX_FMT_0__PT_SIZE_PRESENT.
>>>>>>>>>>                     
>>>>>>>>>>>>>>>> When i have some more time i while cook up some
>>>>>>>>>>>>>>>>                                 
>>>>> code to
>>>>>           
>>>>>>>>> exercise
>>>>>>>>>                   
>>>>>>>>>>>> thees
>>>>>>>>>>>>                         
>>>>>>>>>>>>>>>> outputs. But if someone already has some code it
>>>>>>>>>>>>>>>>                                 
>>>>> would
>>>>> bee
>>>>>           
>>>>>>>>> nice.
>>>>>>>>>                   
>>>>>>>>>>>>>>>> Some testing on other ati cards than my X700 PCIE
>>>>>>>>>>>>>>>>                                 
>>>>> with
>>>>>           
>>>>>> some
>>>>>>             
>>>>>>>>>>> different
>>>>>>>>>>>                       
>>>>>>>>>>>>>>>> apps would bee nice.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Oliver McFadden skrev:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>                                 
>>>>>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> I would prefer if we could confirm the
>>>>>>>>>>>>>>>>>                                   
>>>>>>>>> R300_VAP_OUTPUT_VTX_FMT_0
>>>>>>>>>                   
>>>>>>>>>>>> bits
>>>>>>>>>>>>                         
>>>>>>>>>>>>>>>>> before
>>>>>>>>>>>>>>>>> merging this patch...
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Although r300_reg.h does mark many of the
>>>>>>>>>>>>>>>>>                                   
>>> bits as
>>>       
>>>>>>>>> guesses, so
>>>>>>>>>                   
>>>>>>>>>> I'm
>>>>>>>>>>                     
>>>>>>>>>>>> not
>>>>>>>>>>>>                         
>>>>>>>>>>>>>>>>> apposed to
>>>>>>>>>>>>>>>>> committing this patch now and figuring out all
>>>>>>>>>>>>>>>>>                                   
>>>>> the bits
>>>>>           
>>>>>>>>> later.
>>>>>>>>>                   
>>>>>>>>>> As
>>>>>>>>>>                     
>>>>>>>>>>>>>>> long
>>>>>>>>>>>>>>>                               
>>>>>>>>>>>>>>>>> as you
>>>>>>>>>>>>>>>>> have confirmed that the bits you have changed
>>>>>>>>>>>>>>>>>                                   
>>> are
>>>       
>>>>>> correct.
>>>>>>             
>>>>>>>>>>>>>>>>> On 6/10/07, Tommy Schultz Lassen
>>>>>>>>>>>>>>>>>                                   
>>> <[EMAIL PROTECTED]>
>>>       
>>>>> wrote:
>>>>>           
>>>>>>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Here is a new version of Back face color. It
>>>>>>>>>>>>>>>>>>                                     
>>> also
>>>       
>>>>>> enables
>>>>>>             
>>>>>>>>> FOGC
>>>>>>>>>                   
>>>>>>>>>>> out.
>>>>>>>>>>>                       
>>>>>>>>>>>>>>>>>> VERT_RESULT_BFC1
>>>>>>>>>>>>>>>>>> VERT_RESULT_PSIZ
>>>>>>>>>>>>>>>>>> VERT_RESULT_COL1
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> is pure guess work. If some one has a
>>>>>>>>>>>>>>>>>>                                     
>>> example that
>>>       
>>>>>>>>> exercise
>>>>>>>>>                   
>>>>>>>>>> some
>>>>>>>>>>                     
>>>>>>>>>>> of
>>>>>>>>>>>                       
>>>>>>>>>>>>>>>>>> those that wot help mi.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> VERT_RESULT_BFC0
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> That is the only value where i can get Back
>>>>>>>>>>>>>>>>>>                                     
>>>>> faced to
>>>>>           
>>>>>>>>> work for
>>>>>>>>>                   
>>>>>>>>>> the
>>>>>>>>>>                     
>>>>>>>>>>>>>>>>>> moment.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> VERT_RESULT_FOGC
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> That is the value where it seems to work for
>>>>>>>>>>>>>>>>>>                                     
>>> the
>>>       
>>>>>>>>> moment. I
>>>>>>>>> have
>>>>>>>>>                   
>>>>>>>>>>>> some
>>>>>>>>>>>>                         
>>>>>>>>>>>>>>>>>> indications that it is actually dependent on
>>>>>>>>>>>>>>>>>>                                     
>>>>> the the
>>>>>           
>>>>>>>>> index
>>>>>>>>> used
>>>>>>>>>                   
>>>>>>>>>>> in
>>>>>>>>>>>                       
>>>>>>>>>>>>>>>>>> r300_vertprog.c t_dst_index.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Cut it bee that r300VAPOutputCntl0 and
>>>>>>>>>>>>>>>>>>                                     
>>>>>> r300VAPOutputCntl1
>>>>>>             
>>>>>>>>>> depends
>>>>>>>>>>                     
>>>>>>>>>>>>>>> on the
>>>>>>>>>>>>>>>                               
>>>>>>>>>>>>>>>>>> values set in r300_vertprog.c t_dst_index?
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Oliver McFadden skrev:
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>                                     
>>>>>>>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> I think something is wrong with the
>>>>>>>>>>>>>>>>>>> R300_VAP_OUTPUT_VTX_FMT_0__COLOR_2_PRESENT
>>>>>>>>>>>>>>>>>>> change you made. You changed this to (1 << 16)
>>>>>>>>>>>>>>>>>>>                                       
>>>>>>>>> however this
>>>>>>>>>                   
>>>>>>>>>>> would
>>>>>>>>>>>                       
>>>>>>>>>>>>>>>>>>> correspond to
>>>>>>>>>>>>>>>>>>> the R300_VAP_OUTPUT_VTX_FMT_0__PT_SIZE_PRESENT
>>>>>>>>>>>>>>>>>>>                                       
>>>>> define.
>>>>>           
>>>>>>>>>>>>>>>>>>> So either your change is incorrect, or the
>>>>>>>>>>>>>>>>>>>                                       
>>>>> defines
>>>>> for
>>>>>           
>>>>>>>>>>>>>>>>>>> R300_VAP_OUTPUT_VTX_FMT_0
>>>>>>>>>>>>>>>>>>> are incorrect. It wouldn't surprise me if some
>>>>>>>>>>>>>>>>>>>                                       
>>>>> of the
>>>>>           
>>>>>>>>> bits
>>>>>>>>> for
>>>>>>>>>                   
>>>>>>>>>>>> this
>>>>>>>>>>>>                         
>>>>>>>>>>>>>>>>>>> register are
>>>>>>>>>>>>>>>>>>> not correct; as far as I know the driver
>>>>>>>>>>>>>>>>>>>                                       
>>> hasn't
>>>       
>>>>>>>>> previously
>>>>>>>>>                   
>>>>>>>>>>>>>>> supported
>>>>>>>>>>>>>>>                               
>>>>>>>>>>>>>>>>>>> back-facing
>>>>>>>>>>>>>>>>>>> color, so these bits may have been guessed
>>>>>>>>>>>>>>>>>>>                                       
>>>>> based on
>>>>> the
>>>>>           
>>>>>>>>>> standard
>>>>>>>>>>                     
>>>>>>>>>>>>>>> color
>>>>>>>>>>>>>>>                               
>>>>>>>>>>>>>>>>>>> bit.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> I don't think it would be hard to write some
>>>>>>>>>>>>>>>>>>>                                       
>>>>> OpenGL
>>>>>           
>>>>>>>>> code for
>>>>>>>>>                   
>>>>>>>>>>>>>>> revenge
>>>>>>>>>>>>>>>                               
>>>>>>>>>>>>>>>>>>> (my reverse
>>>>>>>>>>>>>>>>>>> engineering tool) to test these bits, though.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> On 6/8/07, Tommy Schultz Lassen
>>>>>>>>>>>>>>>>>>>                                       
>>> <[EMAIL PROTECTED]>
>>>       
>>>>>> wrote:
>>>>>>             
>>>>>>>>>>>>>>>>>>>> Hi Oliver
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> I got the checker board shown in wave :). The
>>>>>>>>>>>>>>>>>>>>                                         
>>>>>>>>> problem seems
>>>>>>>>>                   
>>>>>>>>>> to
>>>>>>>>>>                     
>>>>>>>>>>>> bee
>>>>>>>>>>>>                         
>>>>>>>>>>>>>>>>>>>> missing VERT_RESULT_BFC0.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> I have attached a patch that gets
>>>>>>>>>>>>>>>>>>>>                                         
>>>>> VERT_RESULT_BFC0 a
>>>>>           
>>>>>>>>> step
>>>>>>>>>                   
>>>>>>>>>>> closer.
>>>>>>>>>>>                       
>>>>>>>>>>>>>>>>>>>> There is a couple of problems:
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> 1) This patch makes the driver do state
>>>>>>>>>>>>>>>>>>>>                                         
>>> changes
>>>       
>>>>> allot.
>>>>>           
>>>>>>>>>>>>>>>>>>>> 2) I fink there is something more basic wrong
>>>>>>>>>>>>>>>>>>>>                                         
>>>>> wit
>>>>>           
>>>>>>>>> how wee
>>>>>>>>>                   
>>>>>>>>>>> handle
>>>>>>>>>>>                       
>>>>>>>>>>>>>>>>>>>> VERT_RESULT.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> How do the chip now that the reg wee set in
>>>>>>>>>>>>>>>>>>>>                                         
>>>>>>>>>>>>>>> r300TranslateVertexShader
>>>>>>>>>>>>>>>                               
>>>>>>>>>>>>>>>>>>>> with code like:
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> vp->outputs[VERT_RESULT_BFC0] = cur_reg++;
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> is for VERT_RESULT_BFC0.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Any insights?
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> The patch makes the tube in fog look read
>>>>>>>>>>>>>>>>>>>>                                         
>>>>> instead of
>>>>>           
>>>>>>>>> green.
>>>>>>>>>                   
>>>>>>>>>> NWN
>>>>>>>>>>                     
>>>>>>>>>>>>>>>>>> looks as
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>                                     
>>>>>>>>>>>>>>>>>>>> it has for some time. OK but with weird
>>>>>>>>>>>>>>>>>>>>                                         
>>>>> colors on
>>>>>           
>>>>>>>>> cloaks
>>>>>>>>> an
>>>>>>>>>                   
>>>>>>>>>>>> some
>>>>>>>>>>>>                         
>>>>>>>>>>>>>>>>>>>> monsters.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> I am going to keep looking.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> /Tommy
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>                                         
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>                                 
>>> -------------------------------------------------------------------------
>>>
>>>       
>>>>>>>>>>>>>>>> This SF.net email is sponsored by DB2 Express
>>>>>>>>>>>>>>>> Download DB2 Express C - the FREE version of DB2
>>>>>>>>>>>>>>>>                                 
>>>>> express
>>>>>           
>>>>>>>>> and
>>>>>>>>> take
>>>>>>>>>                   
>>>>>>>>>>>>>>>> control of your XML. No limits. Just data. Click
>>>>>>>>>>>>>>>>                                 
>>>>> to get
>>>>>           
>>>>>>>>> it now.
>>>>>>>>>                   
>>>>>>>>>>>>>>>> http://sourceforge.net/powerbar/db2/
>>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>>> Mesa3d-dev mailing list
>>>>>>>>>>>>>>>> [email protected]
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>                                 
>>>>> https://lists.sourceforge.net/lists/listinfo/mesa3d-dev
>>>>>           
>>>>>>>>>>>>>>>                               
>>>>>>>>>>>>>                           
>>>>>>>
>>>>>>>               
>>>       
>
>   
> ------------------------------------------------------------------------
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> ------------------------------------------------------------------------
>
> _______________________________________________
> Mesa3d-dev mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

diff --git a/src/mesa/drivers/dri/r300/r300_emit.c b/src/mesa/drivers/dri/r300/r300_emit.c
index 424bf44..98a5c87 100644
--- a/src/mesa/drivers/dri/r300/r300_emit.c
+++ b/src/mesa/drivers/dri/r300/r300_emit.c
@@ -293,8 +293,7 @@ GLuint r300VAPOutputCntl0(GLcontext * ctx, GLuint OutputsWritten)
 	if (OutputsWritten & (1 << VERT_RESULT_HPOS))
 		ret |= R300_VAP_OUTPUT_VTX_FMT_0__POS_PRESENT;
 
-	if (OutputsWritten & (1 << VERT_RESULT_COL0))
-		ret |= R300_VAP_OUTPUT_VTX_FMT_0__COLOR_PRESENT;
+	ret |= R300_VAP_OUTPUT_VTX_FMT_0__COLOR_PRESENT; // Wee always have color0 enabled.
 
 	if (OutputsWritten & (1 << VERT_RESULT_COL1))
 		ret |= R300_VAP_OUTPUT_VTX_FMT_0__COLOR_1_PRESENT;
@@ -308,10 +307,10 @@ GLuint r300VAPOutputCntl0(GLcontext * ctx, GLuint OutputsWritten)
 
 #if 0
 	if (OutputsWritten & (1 << VERT_RESULT_FOGC)) ;
-#endif
 
 	if (OutputsWritten & (1 << VERT_RESULT_PSIZ))
 		ret |= R300_VAP_OUTPUT_VTX_FMT_0__PT_SIZE_PRESENT;
+#endif
 
 	return ret;
 }
diff --git a/src/mesa/drivers/dri/r300/r300_state.c b/src/mesa/drivers/dri/r300/r300_state.c
index 48d92da..6dde941 100644
--- a/src/mesa/drivers/dri/r300/r300_state.c
+++ b/src/mesa/drivers/dri/r300/r300_state.c
@@ -1471,13 +1471,10 @@ static void r300SetupRSUnit(GLcontext * ctx)
 	}
 
 	if (InputsRead & FRAG_BIT_COL0) {
-		if (R300_OUTPUTS_WRITTEN_TEST(OutputsWritten, VERT_RESULT_COL0, _TNL_ATTRIB_COLOR0)) {
-			r300->hw.rr.cmd[R300_RR_ROUTE_0] |= 0 | R300_RS_ROUTE_0_COLOR | (fp_reg++ << R300_RS_ROUTE_0_COLOR_DEST_SHIFT);
-			InputsRead &= ~FRAG_BIT_COL0;
-			col_interp_nr++;
-		} else {
-			WARN_ONCE("fragprog wants col0, vp doesn't provide it\n");
-		}
+		// Wee always have COL0 in vertex program output.
+		r300->hw.rr.cmd[R300_RR_ROUTE_0] |= 0 | R300_RS_ROUTE_0_COLOR | (fp_reg++ << R300_RS_ROUTE_0_COLOR_DEST_SHIFT);
+		InputsRead &= ~FRAG_BIT_COL0;
+		col_interp_nr++;
 	}
 
 	if (InputsRead & FRAG_BIT_COL1) {
@@ -1498,9 +1495,16 @@ static void r300SetupRSUnit(GLcontext * ctx)
 		col_interp_nr++;
 	}
 
-	r300->hw.rc.cmd[1] = 0 | (in_texcoords << R300_RS_CNTL_TC_CNT_SHIFT)
-	    | (col_interp_nr << R300_RS_CNTL_CI_CNT_SHIFT)
-	    | R300_RS_CNTL_0_UNKNOWN_18;
+	if(R300_OUTPUTS_WRITTEN_TEST(OutputsWritten, VERT_RESULT_BFC0, -1) ||
+	   R300_OUTPUTS_WRITTEN_TEST(OutputsWritten, VERT_RESULT_BFC1, -1)){
+		r300->hw.rc.cmd[1] = 0 | (in_texcoords << R300_RS_CNTL_TC_CNT_SHIFT)
+		    | (col_interp_nr << (R300_RS_CNTL_CI_CNT_SHIFT+1))
+		    | R300_RS_CNTL_0_UNKNOWN_18;
+	}else{
+		r300->hw.rc.cmd[1] = 0 | (in_texcoords << R300_RS_CNTL_TC_CNT_SHIFT)
+		    | (col_interp_nr << R300_RS_CNTL_CI_CNT_SHIFT)
+		    | R300_RS_CNTL_0_UNKNOWN_18;
+	}
 
 	assert(high_rr >= 0);
 	r300->hw.rr.cmd[R300_RR_CMD_0] = cmdpacket0(R300_RS_ROUTE_0, high_rr + 1);
diff --git a/src/mesa/drivers/dri/r300/r300_vertprog.c b/src/mesa/drivers/dri/r300/r300_vertprog.c
index 60f151c..356ab02 100644
--- a/src/mesa/drivers/dri/r300/r300_vertprog.c
+++ b/src/mesa/drivers/dri/r300/r300_vertprog.c
@@ -455,7 +455,7 @@ static void r300TranslateVertexShader(struct r300_vertex_program *vp,
 
 	if (vp->key.OutputsWritten & (1 << VERT_RESULT_BFC0)) {
 		vp->outputs[VERT_RESULT_BFC0] = 3;
-		cur_reg = 4;
+		cur_reg = 5; // (It seems tat the engien only sees if back coloring is enabled or not. 5 if enabled else 2 og 3)
 	}
 
 	if (vp->key.OutputsWritten & (1 << VERT_RESULT_BFC1)) {
@@ -465,10 +465,10 @@ static void r300TranslateVertexShader(struct r300_vertex_program *vp,
 #if 0				/* Not supported yet */
 	if (vp->key.OutputsWritten & (1 << VERT_RESULT_FOGC))
 		vp->outputs[VERT_RESULT_FOGC] = cur_reg++;
-#endif
 
 	if (vp->key.OutputsWritten & (1 << VERT_RESULT_PSIZ))
 		vp->outputs[VERT_RESULT_PSIZ] = cur_reg++;
+#endif
 
 	for (i = VERT_RESULT_TEX0; i <= VERT_RESULT_TEX7; i++)
 		if (vp->key.OutputsWritten & (1 << i)) {
@@ -1054,6 +1054,22 @@ static void r300TranslateVertexShader(struct r300_vertex_program *vp,
 		}
 	      next:;
 	}
+	if (!(vp->key.OutputsWritten & (1 << VERT_RESULT_COL0))) {
+		src[2].File = PROGRAM_TEMPORARY;
+		src[2].Index = u_temp_i;
+		src[2].RelAddr = 0;
+		u_temp_i--;
+		// Wee need COL0 in vertex program output
+		o_inst->op =
+        		MAKE_VSF_OP(R300_VPI_OUT_OP_ADD, u_temp_i,
+			VSF_FLAG_ALL,
+			VSF_OUT_CLASS_TMP);
+	  
+		o_inst->src[0] = ZERO_SRC_2;
+		o_inst->src[1] = ZERO_SRC_2;
+		o_inst->src[2] = ZERO_SRC_2;
+		o_inst++;
+	}
 
 	/* Will most likely segfault before we get here... fix later. */
 	if (o_inst - vp->program.body.i >= VSF_MAX_FRAGMENT_LENGTH / 4) {
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Mesa3d-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to