dcc27d6dc1
GPU: Assert when finding a texture with a format type other than UNORM.
2018-04-06 20:44:46 -06:00
b0ca330e14
GL: Set up the textures used for each draw call.
...
Each Maxwell shader stage can have an arbitrary number of textures, but we're limited to a certain number in OpenGL. We try to only use the minimum amount of host textures by not keeping a 1:1 relation between guest texture ids and host texture ids, ie, guest texture id 8 can be host texture id 0 if it's the only texture used in the guest shader program.
This mapping will have to be passed to the shader decompiler so it can rewrite the texture accesses.
2018-04-06 20:44:46 -06:00
cb3183212d
GL: Bind the textures to the shaders used for drawing.
2018-04-06 20:44:46 -06:00
65faeb9b2a
GLCache: Specialize the MortonCopy function for the DXT1 texture format.
...
It will now use the UnswizzleTexture function instead of the MortonCopyPixels128, which doesn't seem to work for textures.
2018-04-06 20:44:46 -06:00
b258403f0d
GLCache: Implemented GetTextureSurface.
2018-04-06 20:44:45 -06:00
65ea52394b
GLCache: Support uploading compressed textures to the GPU.
...
Compressed texture formats like DXT1, DXT2, DXT3, etc will use this to ease the load on the CPU.
2018-04-06 20:44:45 -06:00
73eaef9c05
GL: Remove remaining references to 3DS-specific pixel formats
2018-04-06 20:44:42 -06:00
b305646c44
RasterizerCache: Remove 3DS-specific pixel formats.
...
We're only left with RGB8 and DXT1 for now. More will be added as they are needed.
2018-04-06 20:40:24 -06:00
c28ed85875
GL: Create the sampler objects when starting up the GL rasterizer.
2018-04-06 20:40:24 -06:00
ca96b04a0c
GL: Ported the SamplerInfo struct from citra.
2018-04-06 20:40:24 -06:00
0171ec606b
GL: Rename PicaTexture to MaxwellTexture.
2018-04-06 20:40:24 -06:00
f73a280eeb
GL: Added functions to convert Maxwell tex filters and wrap modes to OpenGL.
2018-04-06 20:40:23 -06:00
ad1810e895
Textures: Added a helper function to know if a texture is blocklinear or pitch.
2018-04-06 20:40:23 -06:00
d1d7582a5b
rasterizer_interface.h: Update from citra to yuzu
2018-04-04 23:07:58 +02:00
27dbbd8227
gl_rasterizer_cache.cpp: Update from citra to yuzu
2018-04-04 23:05:10 +02:00
cfc28e0c1a
gl_rasterizer_cache.h: Update from citra to yuzu
2018-04-04 23:04:24 +02:00
ca17f581f5
renderer_opengl.h: Update from citra to yuzu
2018-04-04 23:03:02 +02:00
11b4ab9685
GPU: Use the MacroInterpreter class to execute the GPU macros instead of HLEing them.
2018-04-01 12:07:26 -05:00
1ec8d2123d
GPU: Implemented a gpu macro interpreter.
...
The Ryujinx macro interpreter and envydis were used as reference.
Macros are programs that are uploaded by the games during boot and can later be called by writing to their method id in a GPU command buffer.
2018-04-01 12:07:26 -05:00
5e343edc9e
renderer_opengl: Use better naming for DrawScreens and DrawSingleScreen.
2018-03-26 21:17:07 -04:00
c33abac275
gl_rasterizer: Move code to bind framebuffer surfaces before draw to its own function.
2018-03-26 21:17:05 -04:00
d30110348b
gl_rasterizer: Add a SyncViewport method.
2018-03-26 21:17:04 -04:00
67bc2f5ecd
gl_rasterizer: Move PrimitiveTopology check to MaxwellToGL.
2018-03-26 21:17:03 -04:00
666d53299c
graphics_surface: Fix merge conflicts.
2018-03-26 21:17:03 -04:00
ac19e3d061
gl_rasterizer: Use ReadBlock instead of GetPointer for SetupVertexArray.
2018-03-26 21:17:02 -04:00
a6cab532f8
gl_rasterizer: Normalize vertex array data as appropriate.
2018-03-26 21:17:02 -04:00
527ce12ce4
maxwel_to_gl: Fix string formatting in log statements.
2018-03-26 21:17:01 -04:00
d89bfec5f5
rasterizer: Rename DrawTriangles to DrawArrays.
2018-03-26 21:17:00 -04:00
1bfc0dc2db
gl_rasterizer: Use passthrough shader for SetupVertexShader.
2018-03-26 21:17:00 -04:00
0a5832798a
renderer_opengl: Logging, etc. cleanup.
2018-03-26 21:16:59 -04:00
7504df52fc
renderer_opengl: Remove framebuffer RasterizerFlushVirtualRegion hack.
2018-03-26 21:16:58 -04:00
c1ccbf332f
gl_rasterizer_cache: Implement UpdatePagesCachedCount.
2018-03-26 21:16:58 -04:00
c2dbdefedf
gl_rasterizer: Implement SetupVertexArray.
2018-03-26 21:16:56 -04:00
cd8bb6ea9b
gl_rasterizer_cache: Fix an ASSERT_MSG.
2018-03-26 21:16:56 -04:00
4369af6b7e
maxwell_to_gl: Add module and function for decoding VertexType.
2018-03-26 21:16:55 -04:00
3754e0fdfd
maxwell_3d: Use names that match envytools for VertexType.
2018-03-26 21:16:55 -04:00
15925b8293
maxwell_3d: Add VertexAttribute struct and cleanup.
2018-03-26 21:16:54 -04:00
0ee38e1363
gl_rasterizer: Use 32 texture units instead of 3.
2018-03-26 21:16:53 -04:00
0162a2d5cb
gl_rasterizer: Implement DrawTriangles.
2018-03-26 21:16:53 -04:00
33c0bf9dc5
Maxwell3D: Call AccelerateDrawBatch on DrawArrays.
2018-03-26 21:16:52 -04:00
ed2134784e
gl_rasterizer: Implement AnalyzeVertexArray.
2018-03-26 21:16:52 -04:00
8041d72a1f
gl_rasterizer_cache: MortonCopy Switch-style.
2018-03-26 21:16:51 -04:00
170ac3f9ee
gl_rasterizer_cache: Implement GetFramebufferSurfaces.
2018-03-26 21:16:51 -04:00
94c70693f9
maxwell: Add RenderTargetFormat enum.
2018-03-26 21:16:49 -04:00
1a9df83535
renderer_opengl: Only draw the screen if a framebuffer is specified.
2018-03-26 21:16:49 -04:00
4697025b73
GPU: Load the sampler info (TSC) when retrieving active textures.
2018-03-26 15:46:49 -05:00
56e2013c1f
GPU: Added the TSC structure. It contains information about the sampler.
2018-03-26 15:45:05 -05:00
6afe9e0105
GPU: Added more fields to the TIC structure.
2018-03-26 15:44:20 -05:00
0ce52b1da2
GPU: Make the debug_context variable a member of the frontend instead of a global.
2018-03-24 23:35:06 -05:00
2c785bd06c
GPU: Added a function to retrieve the active textures for a shader stage.
...
TODO: A shader may not use all of these textures at the same time, shader analysis should be performed to determine which textures are actually sampled.
2018-03-24 11:31:53 -05:00