summaryrefslogtreecommitdiff
path: root/src/solvers/gpu/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/solvers/gpu/mod.rs')
-rw-r--r--src/solvers/gpu/mod.rs17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/solvers/gpu/mod.rs b/src/solvers/gpu/mod.rs
index f9ab711..f147f31 100644
--- a/src/solvers/gpu/mod.rs
+++ b/src/solvers/gpu/mod.rs
@@ -11,6 +11,7 @@ pub enum Message {
CheckRequest(CheckRequest),
HostMessage(MaskMessage),
OutputMessage(RowMessage),
+ ResultMessage(ResultMessage),
Terminate,
}
@@ -18,14 +19,22 @@ pub struct ResultMessage {
data: Vec<u64>,
offset: usize,
size: usize,
+ wg_size: usize,
+ id: u64,
}
impl ResultMessage {
- fn new(data: Vec<u64>, offset: usize, size: usize) -> Self {
- Self { data, offset, size }
+ fn new(data: Vec<u64>, offset: usize, size: usize, wg_size: usize, id: u64) -> Self {
+ Self {
+ data,
+ offset,
+ size,
+ wg_size,
+ id,
+ }
}
- fn valid_walls(&self, wg_size: usize) -> &[Vec<u32>] {
- let mut result = vec![Vec::new(); wg_size];
+ fn valid_walls(&self) -> &[Vec<u32>] {
+ let mut result = vec![Vec::new(); self.wg_size];
for (j, r) in self.data.iter().enumerate() {
for b in 0..64 {
if r & (1 << b) != 0 {