Merge pull request #2823 from Cacodemon345/video-volatile-to-atomic

video: Make the rest of the FIFO variables atomic
This commit is contained in:
Miran Grča
2022-11-08 07:10:37 +01:00
committed by GitHub
4 changed files with 15 additions and 12 deletions

View File

@@ -22,6 +22,7 @@
#include <string.h>
#include <stdlib.h>
#include <wchar.h>
#include <stdatomic.h>
#define HAVE_STDARG_H
#include <86box/86box.h>
#include <86box/device.h>
@@ -215,7 +216,7 @@ typedef struct mach64_t {
} accel;
fifo_entry_t fifo[FIFO_SIZE];
volatile int fifo_read_idx, fifo_write_idx;
atomic_int fifo_read_idx, fifo_write_idx;
thread_t *fifo_thread;
event_t *wake_fifo_thread;

View File

@@ -18,6 +18,7 @@
#include <string.h>
#include <stdlib.h>
#include <wchar.h>
#include <stdatomic.h>
#include <86box/86box.h>
#include <86box/io.h>
#include <86box/timer.h>
@@ -429,7 +430,7 @@ typedef struct mystique_t {
xzoomctrl,
pixel_count, trap_count;
volatile int busy, blitter_submit_refcount,
atomic_int busy, blitter_submit_refcount,
blitter_submit_dma_refcount, blitter_complete_refcount,
endprdmasts_pending, softrap_pending,
fifo_read_idx, fifo_write_idx;

View File

@@ -22,6 +22,7 @@
#include <stdlib.h>
#include <math.h>
#include <wchar.h>
#include <stdatomic.h>
#include <86box/86box.h>
#include <86box/device.h>
#include <86box/io.h>
@@ -298,7 +299,7 @@ typedef struct s3_t {
int input;
int len, start;
int odf, idf, yuv;
volatile int busy;
atomic_int busy;
} videoengine;
struct
@@ -334,7 +335,7 @@ typedef struct s3_t {
} streams;
fifo_entry_t fifo[FIFO_SIZE];
volatile int fifo_read_idx, fifo_write_idx;
atomic_int fifo_read_idx, fifo_write_idx;
uint8_t fifo_thread_run;
@@ -351,10 +352,10 @@ typedef struct s3_t {
uint32_t hwc_fg_col, hwc_bg_col;
int hwc_col_stack_pos;
int translate;
int enable_8514;
int color_16bit;
volatile int busy, force_busy;
int translate;
int enable_8514;
int color_16bit;
atomic_int busy, force_busy;
uint8_t thread_run, serialport;
void *i2c, *ddc;

View File

@@ -22,6 +22,7 @@
#include <string.h>
#include <stdlib.h>
#include <wchar.h>
#include <stdatomic.h>
#define HAVE_STDARG_H
#include <86box/86box.h>
#include <86box/io.h>
@@ -237,10 +238,9 @@ typedef struct virge_t {
s3d_t s3d_tri;
s3d_t s3d_buffer[RB_SIZE];
int s3d_read_idx, s3d_write_idx;
int s3d_busy;
int render_idx;
s3d_t s3d_buffer[RB_SIZE];
atomic_int s3d_read_idx, s3d_write_idx;
atomic_int s3d_busy;
struct
{