public ulong ComputeSurfaceAddrFromCoord(/*R600AddrLib *this, */ref _ADDR_COMPUTE_SURFACE_ADDRFROMCOORD_INPUT pIn, ref _ADDR_COMPUTE_SURFACE_ADDRFROMCOORD_OUTPUT pOut) { /* _AddrTileMode*/ int v3; // ecx@4 ulong v4 = 0; // qax@5 ulong result; // qax@9 /*_AddrTileMode*/ int v6; // [sp+4h] [bp-4Ch]@1 uint v7; // [sp+8h] [bp-48h]@2 //uint /***/pBitPosition; // [sp+Ch] [bp-44h]@4 uint bankSwizzle; // [sp+10h] [bp-40h]@4 uint pipeSwizzle; // [sp+14h] [bp-3Ch]@4 uint compBits; // [sp+18h] [bp-38h]@4 uint tileBase; // [sp+1Ch] [bp-34h]@4 bool isDepth; // [sp+20h] [bp-30h]@4 /*_AddrTileMode*/ int tileMode; // [sp+24h] [bp-2Ch]@4 uint numSamples; // [sp+28h] [bp-28h]@4 uint numSlices; // [sp+2Ch] [bp-24h]@1 uint height; // [sp+30h] [bp-20h]@1 uint pitch; // [sp+34h] [bp-1Ch]@1 uint bpp; // [sp+38h] [bp-18h]@1 uint sample; // [sp+3Ch] [bp-14h]@1 uint slice; // [sp+40h] [bp-10h]@1 uint y; // [sp+44h] [bp-Ch]@1 uint x; // [sp+48h] [bp-8h]@1 // AddrLib *thisa; // [sp+4Ch] [bp-4h]@1 //memset(&v6, -858993460, 0x4Cu); // thisa = (AddrLib *)this; x = pIn.x; y = pIn.y; slice = pIn.slice; sample = pIn.sample; bpp = pIn.bpp; pitch = pIn.pitch; height = pIn.height; numSlices = pIn.numSlices; if (pIn.numSamples != 0) v7 = pIn.numSamples; else v7 = 1; numSamples = v7; tileMode = pIn.tileMode; isDepth = pIn.isDepth; tileBase = pIn.tileBase; compBits = pIn.compBits; pipeSwizzle = pIn.pipeSwizzle; bankSwizzle = pIn.bankSwizzle; //pBitPosition = &pOut->bitPosition; v6 = tileMode; v3 = tileMode; switch (tileMode) { case 0: case 1: /*v4 = ComputeSurfaceAddrFromCoordLinear( thisa, x, y, slice, sample, bpp, pitch, height, numSlices, pBitPosition);*/ break; case 2: case 3: /* v4 = ComputeSurfaceAddrFromCoordMicroTiled( (R600AddrLib *)thisa, x, y, slice, bpp, pitch, height, tileMode, isDepth, tileBase, compBits, pBitPosition);*/ break; case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11: case 12: case 13: case 14: case 15: v4 = ComputeSurfaceAddrFromCoordMacroTiled( //(R600AddrLib *)thisa, x, y, slice, sample, bpp, pitch, height, numSamples, tileMode, isDepth, tileBase, compBits, pipeSwizzle, bankSwizzle, out pOut.bitPosition);// pBitPosition); break; default: v4 = 0; //HIDWORD(v4) = 0; break; } //LODWORD(result) = _RTC_CheckEsp(v3, HIDWORD(v4)); //return result; return v4; }
public ulong ComputeSurfaceAddrFromCoord(/*R600AddrLib *this, */ ref _ADDR_COMPUTE_SURFACE_ADDRFROMCOORD_INPUT pIn, ref _ADDR_COMPUTE_SURFACE_ADDRFROMCOORD_OUTPUT pOut) { /* _AddrTileMode*/ int v3; // ecx@4 ulong v4 = 0; // qax@5 ulong result; // qax@9 /*_AddrTileMode*/ int v6; // [sp+4h] [bp-4Ch]@1 uint v7; // [sp+8h] [bp-48h]@2 //uint /***/pBitPosition; // [sp+Ch] [bp-44h]@4 uint bankSwizzle; // [sp+10h] [bp-40h]@4 uint pipeSwizzle; // [sp+14h] [bp-3Ch]@4 uint compBits; // [sp+18h] [bp-38h]@4 uint tileBase; // [sp+1Ch] [bp-34h]@4 bool isDepth; // [sp+20h] [bp-30h]@4 /*_AddrTileMode*/ int tileMode; // [sp+24h] [bp-2Ch]@4 uint numSamples; // [sp+28h] [bp-28h]@4 uint numSlices; // [sp+2Ch] [bp-24h]@1 uint height; // [sp+30h] [bp-20h]@1 uint pitch; // [sp+34h] [bp-1Ch]@1 uint bpp; // [sp+38h] [bp-18h]@1 uint sample; // [sp+3Ch] [bp-14h]@1 uint slice; // [sp+40h] [bp-10h]@1 uint y; // [sp+44h] [bp-Ch]@1 uint x; // [sp+48h] [bp-8h]@1 // AddrLib *thisa; // [sp+4Ch] [bp-4h]@1 //memset(&v6, -858993460, 0x4Cu); // thisa = (AddrLib *)this; x = pIn.x; y = pIn.y; slice = pIn.slice; sample = pIn.sample; bpp = pIn.bpp; pitch = pIn.pitch; height = pIn.height; numSlices = pIn.numSlices; if (pIn.numSamples != 0) { v7 = pIn.numSamples; } else { v7 = 1; } numSamples = v7; tileMode = pIn.tileMode; isDepth = pIn.isDepth; tileBase = pIn.tileBase; compBits = pIn.compBits; pipeSwizzle = pIn.pipeSwizzle; bankSwizzle = pIn.bankSwizzle; //pBitPosition = &pOut->bitPosition; v6 = tileMode; v3 = tileMode; switch (tileMode) { case 0: case 1: /*v4 = ComputeSurfaceAddrFromCoordLinear( * thisa, * x, * y, * slice, * sample, * bpp, * pitch, * height, * numSlices, * pBitPosition);*/ break; case 2: case 3: /* v4 = ComputeSurfaceAddrFromCoordMicroTiled( * (R600AddrLib *)thisa, * x, * y, * slice, * bpp, * pitch, * height, * tileMode, * isDepth, * tileBase, * compBits, * pBitPosition);*/ break; case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11: case 12: case 13: case 14: case 15: v4 = ComputeSurfaceAddrFromCoordMacroTiled( //(R600AddrLib *)thisa, x, y, slice, sample, bpp, pitch, height, numSamples, tileMode, isDepth, tileBase, compBits, pipeSwizzle, bankSwizzle, out pOut.bitPosition); // pBitPosition); break; default: v4 = 0; //HIDWORD(v4) = 0; break; } //LODWORD(result) = _RTC_CheckEsp(v3, HIDWORD(v4)); //return result; return(v4); }