]> Chaos Git - corbenik/ctrulib.git/commitdiff
minifix test.vsh
authorsmea <smealum@gmail.com>
Tue, 27 May 2014 18:47:53 +0000 (20:47 +0200)
committersmea <smealum@gmail.com>
Tue, 27 May 2014 18:47:53 +0000 (20:47 +0200)
gpu/Makefile
gpu/source/test.vsh
libctru/include/ctr/GSP.h
libctru/include/ctr/srv.h
libctru/source/GSP.c
libctru/source/srv.c

index 6591a653d782e9073ff5fa5a8fdb6b95770ea91f..2a72d5a082a64a63060585cde722ebb6b305b972 100644 (file)
@@ -44,7 +44,7 @@ $(PROJECTNAME).bin: $(PROJECTNAME).elf
 
 $(PROJECTNAME).elf: $(SHBINFILES) $(OFILES)
        # $(LINK) $(LDFLAGS) -o $(PROJECTNAME).elf $(filter-out build/crt0.o, $(OFILES)) -lctru -lc -lgcc
-       $(LINK) $(LDFLAGS) -o $(PROJECTNAME).elf $(filter-out build/crt0.o, $(OFILES)) -g -lctru -lm -lc -lg
+       $(LINK) $(LDFLAGS) -o $(PROJECTNAME).elf $(filter-out build/crt0.o, $(OFILES)) -g -lctru -lm
 
 clean:
        @rm -f build/*.o build/*.d
index 4e83c5c80aeef30005b16b8fc5eec3d59c395205..8501c475b77f0925f0db7f56bcf2b82440141271 100644 (file)
@@ -1,5 +1,7 @@
+; make sure you update aemstro_as for this (27/05/14)
+
 ; setup constants
-       .const 5, 0.0, 1.0, 2.0, 3.0
+       .const 5, 0.0, 0.0, -0.99, 1.0
 
 ; setup outmap
        .out o0, result.position
 
 ;code
        main:
-               ; result.pos = mdlvMtx * in.pos
-               dp4 d40, d40, d00 (0x0)
-               dp4 d40, d41, d00 (0x1)
-               dp4 d40, d42, d00 (0x2)
-               mov d40, d25 (0x4)
-               ; result.pos = projMtx * in.pos
-               dp4 d00, d44, d40 (0x0)
-               dp4 d00, d45, d40 (0x1)
-               dp4 d00, d46, d40 (0x2)
-               dp4 d00, d47, d40 (0x3)
-               ; result.texcoord = const
-               mov d08, d25 (0x5)
-               mov d0C, d25 (0x5)
-               mov d10, d25 (0x5)
-               ; result.color = in.pos
-               mov d04, d00 (0x5)
+               mov d1A, d00 (0x4)
+               mov d1A, d25 (0x3)
+               ; tempreg = mdlvMtx * in.pos
+               dp4 d10, d40, d1A (0x0)
+               dp4 d10, d41, d1A (0x1)
+               dp4 d10, d42, d1A (0x2)
+               mov d10, d25 (0x3)
+               ; result.pos = projMtx * tempreg
+               dp4 d00, d20, d10 (0x0)
+               dp4 d00, d21, d10 (0x1)
+               dp4 d00, d22, d10 (0x2)
+               dp4 d00, d23, d10 (0x3)
+               ; result.texcoord = in.texcoord
+               mov d02, d01 (0x5)
+               mov d03, d25 (0x7)
+               mov d04, d25 (0x7)
+               ; result.color = crappy lighting
+               dp3 d1A, d40, d02 (0x0)
+               dp3 d1A, d41, d02 (0x1)
+               dp3 d1A, d42, d02 (0x2)
+               dp4 d01, d00, d1A (0x6)
+               mov d01, d25 (0x3)
                flush
                end
        endmain:
@@ -39,8 +47,8 @@
        .opdesc _y__, xyzw, xyzw ; 0x1
        .opdesc __z_, xyzw, xyzw ; 0x2
        .opdesc ___w, xyzw, xyzw ; 0x3
-       .opdesc ___w, wwww, wwww ; 0x4
+       .opdesc xyz_, xyzw, xyzw ; 0x4
        .opdesc xyzw, xyzw, xyzw ; 0x5
-       .opdesc __z_, xyzw, xyzw ; 0x6
-       .opdesc ___w, xyzw, xyzw ; 0x7
-       .opdesc xyzw, xyzw, xyzw ; 0x8
+       .opdesc xyz_, xyzw, xyzw ; 0x6
+       .opdesc xyzw, yyyw, xyzw ; 0x7
+       .opdesc xyzw, wwww, wwww ; 0x8
index b38bd23767ce5bedb0d9fb84218fa703c2d95640..166fedb77e05153c43bb1585f74e6a2e9983fd4a 100644 (file)
@@ -10,12 +10,14 @@ Result GSPGPU_AcquireRight(Handle *handle, u8 flags);
 Result GSPGPU_ReleaseRight(Handle *handle);
 Result GSPGPU_SetLcdForceBlack(Handle *handle, u8 flags);
 Result GSPGPU_FlushDataCache(Handle *handle, u8* adr, u32 size);
+Result GSPGPU_InvalidateDataCache(Handle* handle, u8* adr, u32 size);
 Result GSPGPU_WriteHWRegs(Handle *handle, u32 regAddr, u32* data, u8 size);
 Result GSPGPU_WriteHWRegsWithMask(Handle* handle, u32 regAddr, u32* data, u8 datasize, u32* maskdata, u8 masksize);
 Result GSPGPU_ReadHWRegs(Handle *handle, u32 regAddr, u32* data, u8 size);
 Result GSPGPU_RegisterInterruptRelayQueue(Handle *handle, Handle eventHandle, u32 flags, Handle* outMemHandle, u8* threadID);
 Result GSPGPU_UnregisterInterruptRelayQueue(Handle* handle);
 Result GSPGPU_TriggerCmdReqQueue(Handle *handle);
+
 Result GSPGPU_submitGxCommand(u32* sharedGspCmdBuf, u32 gxCommand[0x8], Handle* handle);
 
 #endif
index 2ff4aa7fc2124c2f663da3500d5ef1260a17c6a4..43ae29f80a82a38923025e9d27bd673b049a3ce4 100644 (file)
@@ -3,7 +3,7 @@
 
 Result initSrv();
 Result exitSrv();
-Result srv_Initialize(Handle* handleptr);
+Result srv_RegisterClient(Handle* handleptr);
 Result srv_getServiceHandle(Handle* handleptr, Handle* out, char* server);
 
 #endif
index c71e1079441adae0e9a1b1f0c5a15a2bb8d80d6e..fc4d886d0d07239c2732ce103998b85214fa93af 100644 (file)
@@ -78,6 +78,23 @@ Result GSPGPU_FlushDataCache(Handle* handle, u8* adr, u32 size)
        return cmdbuf[1];
 }
 
+Result GSPGPU_InvalidateDataCache(Handle* handle, u8* adr, u32 size)
+{
+       if(!handle)handle=&gspGpuHandle;
+       
+       u32* cmdbuf=getThreadCommandBuffer();
+       cmdbuf[0]=0x90082; //request header code
+       cmdbuf[1]=(u32)adr;
+       cmdbuf[2]=size;
+       cmdbuf[3]=0x0;
+       cmdbuf[4]=0xffff8001;
+
+       Result ret=0;
+       if((ret=svc_sendSyncRequest(*handle)))return ret;
+
+       return cmdbuf[1];
+}
+
 Result GSPGPU_WriteHWRegs(Handle* handle, u32 regAddr, u32* data, u8 size)
 {
        if(!handle)handle=&gspGpuHandle;
index cdc6af9b97e04235bb164f327cb276dbbfb3a4aa..cadf5f82c51b2351db975d514dda38adeac0e8f2 100644 (file)
@@ -11,7 +11,7 @@ Result initSrv()
 {
        Result ret=0;
        if(svc_connectToPort(&srvHandle, "srv:"))return ret;
-       return srv_Initialize(&srvHandle);
+       return srv_RegisterClient(&srvHandle);
 }
 
 Result exitSrv()
@@ -19,7 +19,7 @@ Result exitSrv()
        if(srvHandle)svc_closeHandle(srvHandle);
 }
 
-Result srv_Initialize(Handle* handleptr)
+Result srv_RegisterClient(Handle* handleptr)
 {
        if(!handleptr)handleptr=&srvHandle;
        u32* cmdbuf=getThreadCommandBuffer();