rename argb -> rgba

This commit is contained in:
Zack Buhman 2025-11-08 14:28:49 -06:00
parent 089b126523
commit 23cafcdb23
24 changed files with 138 additions and 23 deletions

View File

@ -1018,7 +1018,7 @@ int main()
assert(texturebuffer_ptr != MAP_FAILED);
// copy texture
void * texture_buf = read_file("../texture/butterfly_1024x1024_argb8888.data");
void * texture_buf = read_file("../texture/butterfly_1024x1024_rgba8888.data");
assert(texture_buf != NULL);
for (int i = 0; i < texture_size / 4; i++) {

View File

@ -1105,7 +1105,7 @@ int main()
assert(texturebuffer_ptr != MAP_FAILED);
// copy texture
void * texture_buf = read_file("../texture/butterfly_1024x1024_argb8888.data");
void * texture_buf = read_file("../texture/butterfly_1024x1024_rgba8888.data");
assert(texture_buf != NULL);
for (int i = 0; i < texture_size / 4; i++) {

View File

@ -1126,7 +1126,7 @@ int main()
assert(texturebuffer_ptr != MAP_FAILED);
// copy texture
void * texture_buf = read_file("../texture/butterfly_1024x1024_argb8888.data");
void * texture_buf = read_file("../texture/butterfly_1024x1024_rgba8888.data");
assert(texture_buf != NULL);
for (int i = 0; i < texture_size / 4; i++) {

View File

@ -1188,7 +1188,7 @@ int main()
assert(texturebuffer_ptr != MAP_FAILED);
// copy texture
void * texture_buf = read_file("../texture/butterfly_1024x1024_argb8888.data");
void * texture_buf = read_file("../texture/butterfly_1024x1024_rgba8888.data");
assert(texture_buf != NULL);
for (int i = 0; i < texture_size / 4; i++) {

View File

@ -646,7 +646,7 @@ int main()
assert(texturebuffer_ptr != MAP_FAILED);
// copy texture
void * texture_buf = read_file("../texture/butterfly_1024x1024_argb8888.data");
void * texture_buf = read_file("../texture/butterfly_1024x1024_rgba8888.data");
assert(texture_buf != NULL);
for (int i = 0; i < texture_size / 4; i++) {

View File

@ -663,7 +663,7 @@ int main()
assert(texturebuffer_ptr != MAP_FAILED);
// copy texture
void * texture_buf = read_file("../texture/butterfly_128x128_argb8888.data");
void * texture_buf = read_file("../texture/butterfly_128x128_rgba8888.data");
assert(texture_buf != NULL);
for (int i = 0; i < texture_size / 4; i++) {

View File

@ -707,7 +707,7 @@ int main()
intermediate_handle[1] = create_colorbuffer(fd, texture_size, NULL);
{
void * texture_buf = read_file("../texture/butterfly_1024x1024_argb8888.data");
void * texture_buf = read_file("../texture/butterfly_1024x1024_rgba8888.data");
assert(texture_buf != NULL);
for (int i = 0; i < texture_size / 4; i++) {
((uint32_t*)texturebuffer_ptr)[i] = ((uint32_t*)texture_buf)[i];

View File

@ -765,7 +765,7 @@ int main()
assert(texturebuffer_ptr != MAP_FAILED);
// copy texture
void * texture_buf = read_file("../texture/butterfly_1024x1024_argb8888.data");
void * texture_buf = read_file("../texture/butterfly_1024x1024_rgba8888.data");
assert(texture_buf != NULL);
for (int i = 0; i < texture_size / 4; i++) {

View File

@ -935,7 +935,7 @@ int main()
assert(texturebuffer_ptr != MAP_FAILED);
// copy texture
void * texture_buf = read_file("../texture/butterfly_1024x1024_argb8888.data");
void * texture_buf = read_file("../texture/butterfly_1024x1024_rgba8888.data");
assert(texture_buf != NULL);
for (int i = 0; i < texture_size / 4; i++) {

View File

@ -991,7 +991,7 @@ int main()
assert(texturebuffer_ptr != MAP_FAILED);
// copy texture
void * texture_buf = read_file("../texture/butterfly_1024x1024_argb8888.data");
void * texture_buf = read_file("../texture/butterfly_1024x1024_rgba8888.data");
assert(texture_buf != NULL);
for (int i = 0; i < texture_size / 4; i++) {

View File

@ -981,7 +981,7 @@ int main()
assert(texturebuffer_ptr != MAP_FAILED);
// copy texture
void * texture_buf = read_file("../texture/butterfly_1024x1024_argb8888.data");
void * texture_buf = read_file("../texture/butterfly_1024x1024_rgba8888.data");
assert(texture_buf != NULL);
for (int i = 0; i < texture_size / 4; i++) {

View File

@ -1040,7 +1040,7 @@ int main()
assert(texturebuffer_ptr != MAP_FAILED);
// copy texture
void * texture_buf = read_file("../texture/butterfly_1024x1024_argb8888.data");
void * texture_buf = read_file("../texture/butterfly_1024x1024_rgba8888.data");
assert(texture_buf != NULL);
for (int i = 0; i < texture_size / 4; i++) {

View File

@ -981,7 +981,7 @@ int main()
assert(texturebuffer_ptr != MAP_FAILED);
// copy texture
void * texture_buf = read_file("../texture/butterfly_1024x1024_argb8888.data");
void * texture_buf = read_file("../texture/butterfly_1024x1024_rgba8888.data");
assert(texture_buf != NULL);
for (int i = 0; i < texture_size / 4; i++) {

View File

@ -990,7 +990,7 @@ int main()
assert(texturebuffer_ptr != MAP_FAILED);
// copy texture
void * texture_buf = read_file("../texture/butterfly_1024x1024_argb8888.data");
void * texture_buf = read_file("../texture/butterfly_1024x1024_rgba8888.data");
assert(texture_buf != NULL);
for (int i = 0; i < texture_size / 4; i++) {

View File

@ -996,7 +996,7 @@ int main()
assert(texturebuffer_ptr != MAP_FAILED);
// copy texture
void * texture_buf = read_file("../texture/butterfly_1024x1024_argb8888.data");
void * texture_buf = read_file("../texture/butterfly_1024x1024_rgba8888.data");
assert(texture_buf != NULL);
for (int i = 0; i < texture_size / 4; i++) {

View File

@ -699,10 +699,10 @@ int main()
const int texture_size = 1024 * 1024 * 4;
texturebuffer_handle[0] = load_texture(fd,
"../texture/butterfly_1024x1024_argb8888.data",
"../texture/butterfly_1024x1024_rgba8888.data",
texture_size);
texturebuffer_handle[1] = load_texture(fd,
"../texture/bird_1024x1024_argb8888.data",
"../texture/bird_1024x1024_rgba8888.data",
texture_size);
{ // clear colorbuffer

View File

@ -972,7 +972,7 @@ int main()
assert(texturebuffer_ptr != MAP_FAILED);
// copy texture
void * texture_buf = read_file("../texture/butterfly_1024x1024_argb8888.data");
void * texture_buf = read_file("../texture/butterfly_1024x1024_rgba8888.data");
assert(texture_buf != NULL);
for (int i = 0; i < texture_size / 4; i++) {

View File

@ -55,7 +55,7 @@ def validate_swizzle(token):
return tuple(swizzles[c] for c in token.lexeme)
def validate_mask_swizzle(token) -> tuple[AlphaMask, RGBMask]:
argb_masks = OrderedDict([
rgba_masks = OrderedDict([
(b"none" , (AlphaMask.NONE, RGBMask.NONE)),
(b"r" , (AlphaMask.NONE, RGBMask.R)),
(b"g" , (AlphaMask.NONE, RGBMask.G)),
@ -72,9 +72,9 @@ def validate_mask_swizzle(token) -> tuple[AlphaMask, RGBMask]:
(b"gba" , (AlphaMask.A, RGBMask.GB)),
(b"rgba" , (AlphaMask.A, RGBMask.RGB)),
])
if token.lexeme not in argb_masks:
if token.lexeme not in rgba_masks:
raise ValidatorError("invalid destination mask", token)
return argb_masks[token.lexeme]
return rgba_masks[token.lexeme]
def validate_masks(ins_ast: parser.TEXInstruction):
addresses = set()

115
src/float_colorbuffer.cpp Normal file
View File

@ -0,0 +1,115 @@
#include <assert.h>
#include <errno.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <fcntl.h>
#include <sys/mman.h>
#include "r500/3d_registers.h"
#include "r500/3d_registers_undocumented.h"
#include "r500/3d_registers_bits.h"
#include "r500/indirect_buffer.h"
#include "r500/shader.h"
#include "r500/display_controller.h"
#include "drm/buffer.h"
#include "drm/drm.h"
#include "math/float_types.hpp"
#include "math/transform.hpp"
#include "math/constants.hpp"
#include "../model/model2.h"
#include "../model/plane.h"
#define CLEAR_SHADER 0
#define PLANE_SHADER 1
#define PARTICLE_SHADER 2
#define TEXTURE_TILE_SHADER 3
const char * vertex_shader_paths[] = {
"clear.vs.bin",
};
const int vertex_shader_paths_length = (sizeof (vertex_shader_paths)) / (sizeof (vertex_shader_paths[0]));
const char * fragment_shader_paths[] = {
"clear.fs.bin",
};
const int fragment_shader_paths_length = (sizeof (fragment_shader_paths)) / (sizeof (fragment_shader_paths[0]));
#define PARTICLE_TEXTURE 0
const char * textures[] = {
"../texture/particle_32x32_rgba8888.data",
};
const int textures_length = (sizeof (textures)) / (sizeof (textures[0]));
struct shaders {
struct shader_offset * vertex;
struct shader_offset * fragment;
int vertex_length;
int fragment_length;
};
int main()
{
struct shaders shaders = {
.vertex = load_shaders(vertex_shader_paths, vertex_shader_paths_length),
.fragment = load_shaders(fragment_shader_paths, fragment_shader_paths_length),
.vertex_length = vertex_shader_paths_length,
.fragment_length = fragment_shader_paths_length,
};
void * rmmio = map_pci_resource2();
int fd = open("/dev/dri/card0", O_RDWR | O_CLOEXEC);
assert(fd != -1);
const int colorbuffer_size = 1600 * 1200 * 4;
int colorbuffer_handle[2];
int zbuffer_handle;
int * texturebuffer_handle;
int flush_handle;
void * colorbuffer_ptr[2];
void * zbuffer_ptr;
// colorbuffer
colorbuffer_handle[0] = create_buffer(fd, colorbuffer_size, &colorbuffer_ptr[0]);
colorbuffer_handle[1] = create_buffer(fd, colorbuffer_size, &colorbuffer_ptr[1]);
zbuffer_handle = create_buffer(fd, colorbuffer_size, &zbuffer_ptr);
flush_handle = create_flush_buffer(fd);
texturebuffer_handle = load_textures(fd, textures, textures_length);
fprintf(stderr, "colorbuffer handle[0] %d\n", colorbuffer_handle[0]);
fprintf(stderr, "colorbuffer handle[1] %d\n", colorbuffer_handle[1]);
fprintf(stderr, "zbuffer handle %d\n", zbuffer_handle);
int colorbuffer_ix = 0;
float theta = PI * 0.5;
while (true) {
int ib_dwords = indirect_buffer(shaders, theta);
drm_radeon_cs(fd,
colorbuffer_handle[colorbuffer_ix],
zbuffer_handle,
flush_handle,
texturebuffer_handle,
textures_length,
ib_dwords);
primary_surface_address(rmmio, colorbuffer_ix);
// next state
theta += 0.01f;
colorbuffer_ix = (colorbuffer_ix + 1) & 1;
}
close(fd);
}

View File

@ -545,7 +545,7 @@ int indirect_buffer(shaders& shaders,
}
const char * textures[] = {
"../texture/butterfly_1024x1024_argb8888.data",
"../texture/butterfly_1024x1024_rgba8888.data",
};
const int textures_length = (sizeof (textures)) / (sizeof (textures[0]));

View File

@ -722,7 +722,7 @@ int _tile_texture(const shaders& shaders,
}
const char * textures[] = {
"../texture/butterfly_1024x1024_argb8888.data",
"../texture/butterfly_1024x1024_rgba8888.data",
};
const int textures_length = (sizeof (textures)) / (sizeof (textures[0]));